//以下是部分代码
SQLCHAR strStmt[] = "SELECT * FROM register WHERE UserName = ?";
short sr;
SQLHSTMT hStmt;
sr = SQLAllocHandle(SQL_HANDLE_STMT, m_hDbc, &hStmt);
if(sr < 0)
MessageBox("分配SQL语句句柄失败!");
sr = SQLPrepare(hStmt, strStmt, SQL_NTS);
if(sr < 0)
MessageBox("预准备语句失败!");
char szName[30];
strcpy(szName, m_szUserName.GetBuffer(0)); //m_szUserName为从对话框获取的字符串变量
long int iLen = m_szUserName.GetLength();
szName[iLen] = '\0';
sr = SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_VARCHAR, 50, 0, szName, 30, (SQLINTEGER *)&iLen);
long int iRow;
iRow = GetLastError();
if(sr < 0)
MessageBox("绑定参数失败!"); sr = SQLExecute(hStmt); //sr 返回SQL_SUCCESS
iRow = GetLastError();
if(sr < 0)
MessageBox("执行查询失败!");
//Sleep(500); sr = SQLRowCount(hStmt, &iRow); //iRow得到-1 ,对于Insert操作可以
//正常获取行数
///////////////////////////////////////////////////////////
SQLRowCount可以得到Update,Insert,Delete影响的行数,对Select操作却得不到,
怎样获取Select操作得到的结果集的记录行数呢?
SQLCHAR strStmt[] = "SELECT * FROM register WHERE UserName = ?";
short sr;
SQLHSTMT hStmt;
sr = SQLAllocHandle(SQL_HANDLE_STMT, m_hDbc, &hStmt);
if(sr < 0)
MessageBox("分配SQL语句句柄失败!");
sr = SQLPrepare(hStmt, strStmt, SQL_NTS);
if(sr < 0)
MessageBox("预准备语句失败!");
char szName[30];
strcpy(szName, m_szUserName.GetBuffer(0)); //m_szUserName为从对话框获取的字符串变量
long int iLen = m_szUserName.GetLength();
szName[iLen] = '\0';
sr = SQLBindParameter(hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR,
SQL_VARCHAR, 50, 0, szName, 30, (SQLINTEGER *)&iLen);
long int iRow;
iRow = GetLastError();
if(sr < 0)
MessageBox("绑定参数失败!"); sr = SQLExecute(hStmt); //sr 返回SQL_SUCCESS
iRow = GetLastError();
if(sr < 0)
MessageBox("执行查询失败!");
//Sleep(500); sr = SQLRowCount(hStmt, &iRow); //iRow得到-1 ,对于Insert操作可以
//正常获取行数
///////////////////////////////////////////////////////////
SQLRowCount可以得到Update,Insert,Delete影响的行数,对Select操作却得不到,
怎样获取Select操作得到的结果集的记录行数呢?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货