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;
}
...全文
280 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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很久不来了。
回复
相关推荐
发帖
Windows SDK/API
创建于2007-08-02

1206

社区成员

C++ Builder Windows SDK/API
申请成为版主
帖子事件
创建了帖子
2006-11-14 01:57
社区公告
暂无公告