SQLHENV henv = NULL; //定义环境句柄
SQLHSTMT hstmt = NULL; //定义语句句柄
SQLHDBC hdbc = NULL; //定义连接句柄
SQLRETURN sqlreturn;
sqlreturn = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
// 创建odbc环境句柄
sqlreturn = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
// 设置odbc版本号
sqlreturn = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
// 创建odbc连接句柄
sqlreturn = SQLConnect(hdbc, (SQLCHAR *)"WriteWchar", SQL_NTS,
(SQLCHAR *)"sa", SQL_NTS, (SQLCHAR *)"", SQL_NTS);
// 建立odbc连接
sqlreturn = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
// 创建sql语句的语句句柄
sqlreturn = SQLExecdirect(hstmt, (SQLCHAR *)"select UserName,PassWord from account ",SQL_NTS);
// 直接执行
short ColsCount = 0;
sqlreturn = SQLNumResultCols(hstmt,&ColsCount);
//得到返回结果集的列数
long RowsCount = 0;
sqlreturn = SQLRowCount(hstmt,&RowsCount);
//得到返回结果集的行数******不是列数******
char szUserName[16];
char szPassWord[13];
memset(szUserName,0,16);
memset(szPassWord,0,13);
//以上是存放绑定数据的变量
SQLINTEGER cb=SQL_NTS;
memset(&cb,0,sizeof(SDWORD));
sqlreturn = SQLBindCol(hstmt,1,SQL_C_CHAR,szUserName,16,&cb);
sqlreturn = SQLBindCol(hstmt,2,SQL_C_CHAR,szPassWord,13,&cb);
sqlreturn = SQLFetch(hstmt);
while (sqlreturn == SQL_SUCCESS)
{
char * pDisplay = new char[60];
memset(pDisplay,0,60);
sprintf(pDisplay,"UserName = /"%s/" And PassWord = /"%s/"",szUserName,szPassWord);
AfxMessageBox(pDisplay);
delete pDisplay;
sqlreturn = SQLFetch(hstmt);
}
SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
SQLFreeHandle(SQL_HANDLE_ENV, henv);
预处理-执行方式举例:向account表插入aa用户信息
//--------------------------------------------------------------------------------------
//预编译带有参数的语句
char szUserName[16];
char szPassWord[13];
szUserName=’aa’;
szPassWord=’bb’;
sqlreturn =SQLPrepare(hstmt, (SQLCHAR *)”insert into account values(?,?)”,SQL_NTS);
if sqlreturn==SQL_SUCCESS|| sqlreturn==SQL+SUCCESS_WITH_INFO)
{
SQLBindParameter(hstmt,1,SQL_PARAINPUT,SQL_C_CHAR,SQL_CHAR, 16,0, szUserName,0, &cb);
SQLBindParameter(hstmt,2,SQL_PARAINPUT,SQL_C_CHAR,SQL_CHAR, 13,0, szPassWord,0, &cb);
}
sqlreturn =SQLExecute(hstmt);
//--------------------------------------------------------------------------------------