ODBC SDK编程问题

binbin 2006-11-14 01:57:42
刚翻了些ODBC API的资料,写了个测试程序,结果死循环,不知道错在哪里,请大虾指教ODBC SDK编程的基本方式:

#include <windows.h>
#include <stdio.h>
#include <sqlext.h>
#include <Odbcinst.h>
#define _TUCHAR unsigned char //编译器兼容
#define DSOURCE "TestODBC"
#define USER ""
#define PASS ""
#define SQL "SELECT * FROM stuScore"

int main()
{

HENV hEnv=NULL;
HDBC hDBC=NULL;
HSTMT hStmt=NULL;
int iRet=0;
SQLCHAR strName[51];
SQLDOUBLE fScore;
SQLINTEGER iID,iIDLen,iNameLen,iScoreLen;
int iTimeOut=5;

//简化演示,所以对返回值并没有作检测和错误处理
iRet=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv);//初始化环境并返回对应于该环境的环境句柄
iRet=SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
iRet=SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDBC);//每一个到数据源的连接对应于一个连接句柄
iRet=SQLSetConnectAttr(hDBC, SQL_LOGIN_TIMEOUT, &iTimeOut, 0);
iRet=SQLConnect( hDBC, (SQLCHAR*)DSOURCE, SQL_NTS, (SQLCHAR*)USER, SQL_NTS, (SQLCHAR*)PASS, SQL_NTS );
iRet=SQLAllocHandle(SQL_HANDLE_STMT, hDBC, &hStmt);
iRet=SQLExecDirect( hStmt, (SQLCHAR*)SQL, SQL_NTS );
iRet=SQLBindCol(hStmt, 1, SQL_C_ULONG, &iID, 0, &iIDLen);
iRet=SQLBindCol(hStmt, 2, SQL_C_CHAR, strName, 50, &iNameLen);
iRet=SQLBindCol(hStmt, 3, SQL_C_DOUBLE, &fScore, 0, &iScoreLen);

printf("\tID\tNAME\tScore\n");

iRet == SQLFetch(hStmt);
while (iRet != SQL_NO_DATA && iRet != SQL_ERROR )//显示完最后一条记录以后就死循环,始终输出最后一条记录,iRet总是返回0,即SQL_SUCCESS
{
printf("\t%d\t%s\t%f\n", iID, strName, fScore);
iRet == SQLFetch(hStmt);
}

if( hStmt!=NULL )
SQLFreeHandle(SQL_HANDLE_STMT, hStmt);

if( hDBC!=NULL ) {
SQLDisconnect( hDBC );
SQLFreeHandle(SQL_HANDLE_DBC, hDBC);

}

if( hEnv!=NULL )
SQLFreeHandle(SQL_HANDLE_ENV, hEnv);

return 0;
}
...全文
364 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
MEFULEU 2006-11-27
  • 打赏
  • 举报
回复
向各位老大学习~~~~~~

礼炮~敬礼,
ccrun.com 2006-11-14
  • 打赏
  • 举报
回复
我现在什么都用,革命需要什么,咱们就用什么。
LuoGD 2006-11-14
  • 打赏
  • 举报
回复
呵呵~~
和DBLIB差不多
binbin 2006-11-14
  • 打赏
  • 举报
回复
呵呵,不写代码好久了...汗,BCB给BORLAND卖了吧?现在大家还在用BCB5和6?
ccrun.com 2006-11-14
  • 打赏
  • 举报
回复
iRet == SQLFetch(hStmt);

呵呵。binbin很久不来了。

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧