您的位置:首页 > 其它

直接执行方式举例:查询account表中所有的用户名和密码

2010-05-05 00:33 239 查看
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);
//--------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐