c语言与数据库

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
#include "sqlext.h"
int main()
{
SQLHENV henv; //环境句柄
SQLHDBC hdbc; //连接句柄
SQLHSTMT hstmt; //语句句柄
SQLRETURN retcode; //返回值
/*分配环境句柄*/
SQLCHAR unitname[30],minister[10];
SQLINTEGER unitid,unitnum,cbunitname=SQL_NTS,cbunitid=SQL_NTS,cbunitnum=SQL_NTS,cbminister=SQL_NTS;
retcode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); /*设置ODBC环境属性*/
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc); /*分配连接句柄*/
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLConnect (hdbc, (SQLCHAR*)"COM",SQL_NTS,(SQLCHAR*)"",SQL_NTS, (SQLCHAR*)"",SQL_NTS); /*连接到数据源*/
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
retcode = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); /*分配语句句柄*/
if(retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
printf("OK ");
retcode=SQLExecDirect(hstmt,(SQLCHAR*)("select unitid from depa "),SQL_NTS);
if (retcode==SQL_SUCCESS || retcode==SQL_SUCCESS_WITH_INFO)
{
retcode=SQLBindCol(hstmt,1,SQL_C_LONG,&unitid,15,&cbunitid);
retcode=SQLBindCol(hstmt,2,SQL_C_CHAR,unitname,20, &cbunitname);
retcode=SQLBindCol(hstmt,3,SQL_C_LONG,&unitnum,0, &cbunitnum);
retcode=SQLBindCol(hstmt,4,SQL_C_CHAR,minister,0, &cbminister);
}
while ( (retcode=SQLFetch(hstmt) ) !=SQL_NO_DATA_FOUND)
{
if(retcode==SQL_ERROR)
printf("Fetch error\n");
else
printf("%d\t%s\t%d\t%s\n",unitid,unitname,unitnum,minister);
}

SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
}
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
}
}
}
return 0;
}
cmd窗口不停显示Fetch error
下面给数据库代码:
create database COM;
use COM;

create table depa
(
unitid int primary key,
unitname varchar(30) unique,
unitnum int,
minister varchar(10)
);
insert into depa values ('市场营销',0,'张三');


求指导!怎么么出数据呢?


其实是SQLBlindCol中的缓冲池大小分配有误啦,我找到了,但也谢谢楼上的

相关文档
最新文档