读书人

菜鸟,c语言数据库编程有关问题

发布时间: 2012-04-21 14:34:44 作者: rapoo

初学者求助,c语言数据库编程问题.
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <stdio.h>
#include < stdlib.h>
//#define BUFF_LENGTH 10
main()
{
char name[10];
int i=0;
HENV henv;
HDBC hdbc;
HSTMT hstmt;
unsigned char datasource[]="c:\sss";
unsigned char user[]="";
unsigned char pwd[]="";
unsigned char search[]="select sname fome sss";
SQLRETURN retcode;
retcode=SQLAllocEnv(&henv);
retcode=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
retcode=SQLAllocConnect(henv,&hdbc);
retcode=SQLConnect(hdbc,datasource,SQL_NTS,user,SQL_NTS,pwd,SQL_NTS);
if(retcode!=SQL_SUCCESS&&retcode!=SQL_SUCCESS_WITH_INFO)
{
printf("\n连接失败,请检查数据库和数据源是否存在!");
return;
}
retcode=SQLAllocStmt(hdbc,&hstmt);
retcode=SQLExecDirect(hstmt,search,SQL_NTS);
SQLBindCol(hstmt,2,SQL_C_CHAR,name,10,0);
do
{
retcode=SQLFetch(hstmt);
if(retcode==SQL_NO_DATA)
break;
printf("%s\n",name);
}while(1);
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
SQLFreeHandle(SQL_HANDLE_ENV,henv);
system("pause");
return 0;
}
视频上的一个例子,可是我编译的时候总是报错,错误信息如下:
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(142): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(294): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(295): warning C4005: “__”: 宏重定义
1> c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(142) : 参见“__”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(308): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(309): warning C4005: “__”: 宏重定义
1> c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(295) : 参见“__”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(312): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(313): warning C4005: “__”: 宏重定义
1> c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(309) : 参见“__”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(316): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(317): warning C4005: “__”: 宏重定义
1> c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(313) : 参见“__”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(320): error C2008: “$”: 宏定义中的意外
1>c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(321): warning C4005: “__”: 宏重定义
1> c:\program files\microsoft sdks\windows\v7.0a\include\driverspecs.h(317) : 参见“__”的前一个定义
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1202): error C2018: 未知字符“0x24”
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1202): error C2061: 语法错误: 标识符“drv_group”
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1202): error C2059: 语法错误:“;”
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1210): error C2085: “EXCEPTION_ROUTINE”: 不在形参表中
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1212): error C2085: “EXCEPTION_ROUTINE”: 不在形参表中
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(1212): error C2143: 语法错误 : 缺少“;”(在“*”的前面)
1>c:\program files\microsoft sdks\windows\v7.0a\include\winnt.h(2199): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
编译器为VS2010中文旗舰版,操作系统XP,不知道是不是SDK的问题,另求较为详细的c语言数据库编程学习资源.
望各位前辈不吝赐教,不胜感激.

------解决方案--------------------


没有环境,测不了噢。
[解决办法]
你去掉预编译头试试,我这边是可以编译通过的。没有出现LZ那样的
错误

读书人网 >C语言

热点推荐