vc2010 控制台程序
代码如下:
// ODBCAPP.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"#include "conio.h"#include <string.h>#include <windows.h>#include "sql.h"#include <sqlext.h>#include <sqltypes.h>#include <odbcinst.h>#include <iostream>using namespace std;#define LOGIN_TIMEOUT 30
int _tmain(int argc, _TCHAR* argv[]){// ODBCAPP.cpp : 定义控制台应用程序的入口点。//
/*定义变量*/SQLHENV henv; //环境句柄SQLHDBC hdbc;//连接句柄SQLHSTMT hstmt;//执行语句句柄SQLRETURN retcode ;//用于接收函数的返回值,以判断函数是否执行成功。SQL下每个函数都有返回值。TCHAR STR[100];//用天显示retcode的值////////////////////////以下变量用于显示错误信息////////////////////SQLWCHAR SqlState[6],SQLStmt[100],Msg[SQL_MAX_MESSAGE_LENGTH]; SQLINTEGER NativeError; SQLSMALLINT i=1, MsgLen;////////////////////////////////////////////////////////*进行数据库设置*////////////////////////////////////////////////////////retcode =SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);//申请环境句柄if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"申请环境句柄失败",NULL,MB_OK);
retcode =SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); //设置环境句柄的ODBC版本属性if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"设置环境句柄的ODBC版本属性失败",NULL,MB_OK);
retcode =SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);//申请数据库连接句柄if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"申请数据库连接句柄失败",NULL,MB_OK);
SQLConnect(hdbc, (SQLWCHAR *)"AddressBook", SQL_NTS, L"hmhz1", SQL_NTS, L"yang229069", SQL_NTS);//连接数据源if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"连接数据源失败",NULL,MB_OK);retcode=SQLAllocStmt(hdbc, &hstmt);//申请SQL语句句柄if(retcode!=SQL_SUCCESS){_stprintf_s(STR,100,_T("申请SQL语句句柄后:retcode= %d") ,retcode);MessageBox(NULL,STR,NULL,MB_OK);}
SQLExecDirect(hstmt,L"insert into 1,1,'123'",SQL_NTS);if(retcode!=SQL_SUCCESS){_stprintf_s(STR,100,_T("执行SQL语句句柄后:retcode= %d") ,retcode);MessageBox(NULL,STR,NULL,MB_OK);}_getch();
return 0;}
弹出
申请数据库连接句柄失败的对话框。。。I
代码如下:
// ODBCAPP.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"#include "conio.h"#include <string.h>#include <windows.h>#include "sql.h"#include <sqlext.h>#include <sqltypes.h>#include <odbcinst.h>#include <iostream>using namespace std;#define LOGIN_TIMEOUT 30
int _tmain(int argc, _TCHAR* argv[]){// ODBCAPP.cpp : 定义控制台应用程序的入口点。//
/*定义变量*/SQLHENV henv; //环境句柄SQLHDBC hdbc;//连接句柄SQLHSTMT hstmt;//执行语句句柄SQLRETURN retcode ;//用于接收函数的返回值,以判断函数是否执行成功。SQL下每个函数都有返回值。TCHAR STR[100];//用天显示retcode的值////////////////////////以下变量用于显示错误信息////////////////////SQLWCHAR SqlState[6],SQLStmt[100],Msg[SQL_MAX_MESSAGE_LENGTH]; SQLINTEGER NativeError; SQLSMALLINT i=1, MsgLen;////////////////////////////////////////////////////////*进行数据库设置*////////////////////////////////////////////////////////retcode =SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);//申请环境句柄if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"申请环境句柄失败",NULL,MB_OK);
retcode =SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER); //设置环境句柄的ODBC版本属性if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"设置环境句柄的ODBC版本属性失败",NULL,MB_OK);
retcode =SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);//申请数据库连接句柄if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"申请数据库连接句柄失败",NULL,MB_OK);
SQLConnect(hdbc, (SQLWCHAR *)"AddressBook", SQL_NTS, L"hmhz1", SQL_NTS, L"yang229069", SQL_NTS);//连接数据源if(retcode!=SQL_SUCCESS)MessageBox(NULL,L"连接数据源失败",NULL,MB_OK);retcode=SQLAllocStmt(hdbc, &hstmt);//申请SQL语句句柄if(retcode!=SQL_SUCCESS){_stprintf_s(STR,100,_T("申请SQL语句句柄后:retcode= %d") ,retcode);MessageBox(NULL,STR,NULL,MB_OK);}
SQLExecDirect(hstmt,L"insert into 1,1,'123'",SQL_NTS);if(retcode!=SQL_SUCCESS){_stprintf_s(STR,100,_T("执行SQL语句句柄后:retcode= %d") ,retcode);MessageBox(NULL,STR,NULL,MB_OK);}_getch();
return 0;}
弹出
申请数据库连接句柄失败的对话框。。。I