- 论坛徽章:
- 0
|
源码如下:
#include <stdio.h>
#include <sqlcli1.h>
int main()
{
SQLHANDLE EnvHandle = 0;
SQLHANDLE ConHandle = 0;
SQLHANDLE StmtHandle = 0;
SQLRETURN RetCode = SQL_SUCCESS;
SQLCHAR SQLStmt[255];
SQLCHAR JobType[10];
SQLCHAR EmpNo[10];
SQLCHAR LastName[25];
SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&EnvHandle);
if (EnvHandle != 0)
SQLSetEnvAttr(EnvHandle,SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_UINTEGER);
if (EnvHandle != 0)
SQLAllocHandle(SQL_HANDLE_DBC,EnvHandle,&ConHandle);
if (EnvHandle != 0)
RetCode = SQLConnect(ConHandle,(SQLCHAR *)"SAMPLE",
SQL_NTS,(SQLCHAR *)"db2admin",
SQL_NTS,(SQLCHAR *)"db2admin",
SQL_NTS);
if (ConHandle != 0 && RetCode == SQL_SUCCESS)
SQLAllocHandle(SQL_HANDLE_STMT,ConHandle,&StmtHandle);
strcpy((char *)SQLStmt,"SELECT empno,lastname FROM");
strcpy((char *)SQLStmt,"employee WHERE job = ?");
RetCode = SQLBindParameter(StmtHandle,1,
SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,
sizeof(JobType),0,JobType,
sizeof(JobType),NULL);
strcpy((char *)JobType,"DESIGNER");
RetCode = SQLExecute(StmtHandle);
if (RetCode == SQL_SUCCESS)
{
SQLBindCol(StmtHandle,1,SQL_C_CHAR,(SQLPOINTER)
EmpNo,sizeof(EmpNo),NULL);
SQLBindCol(StmtHandle,2,SQL_C_CHAR,(SQLPOINTER)
LastName,sizeof(LastName),NULL);
while (RetCode != SQL_NO_DATA)
{
RetCode = SQLFetch(StmtHandle);
if (RetCode != SQL_NO_DATA)
printf("%-8s%s\n",EmpNo,LastName);
}
}
RetCode = SQLEndTran(SQL_HANDLE_DBC,ConHandle,SQL_COMMIT);
if (StmtHandle != 0)
SQLFreeHandle(SQL_HANDLE_STMT,StmtHandle);
if (ConHandle != 0)
RetCode = SQLDisconnect(ConHandle);
if (ConHandle != 0)
SQLFreeHandle(SQL_HANDLE_STMT,ConHandle);
if (EnvHandle != 0)
SQLFreeHandle(SQL_HANDLE_ENV,EnvHandle);
return(0);
}
编译命令:gcc -L "E:/Program Files/IBM/SQLLIB/lib" -I "E:/Program Files/IBM/SQLLIB/include" excli01.c
提示:
In file included from excli01.c:2:0:
E:/Program Files/IBM/SQLLIB/include/sqlcli1.h:1012:23: 错误:与‘SQLColAttributeW’类型冲突
/usr/include/sqlucode.h:121:19: 附注:‘SQLColAttributeW’的上一个声明在此
环境:CYGWIN,
gcc --version
gcc (GCC) 4.5.3
Copyright (c) 2010 Free Software Foundation, Inc.
上面没有包含sqlucode.h,但编译时自动包含进来,为什么?如何解决?谢谢!!! |
|