程序如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
VARCHAR server[20];
EXEC SQL END DECLARE SECTION;
void sqlerror();
main(){
strcpy((char *)username.arr,"scott");
strcpy((char *)password.arr,"tiger");
strcpy((char *)server.arr,"crmdb");
password.len=strlen(password.arr);
username.len=strlen(username.arr);
server.len=strlen(server.arr);
EXEC SQL WHENEVER SQLERROR DO sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;
printf("ok\n");
exit(0);
}
void sqlerror()
{
printf("sql connection error!\n");
exit(1);
}
错误信息如下:
-------------------Configuration: Exam01 - Win32 Debug--------------------
Compiling...
test.c
E:\test\pctest\Exam01\test.c(173) : error C2065: 'sqlca' : undeclared identifier
E:\test\pctest\Exam01\test.c(210) : error C2224: left of '.sqlcode' must have struct/union type
Error executing cl.exe.Exam01.exe - 2 error(s), 0 warning(s)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR password[20];
VARCHAR server[20];
EXEC SQL END DECLARE SECTION;
void sqlerror();
main(){
strcpy((char *)username.arr,"scott");
strcpy((char *)password.arr,"tiger");
strcpy((char *)server.arr,"crmdb");
password.len=strlen(password.arr);
username.len=strlen(username.arr);
server.len=strlen(server.arr);
EXEC SQL WHENEVER SQLERROR DO sqlerror();
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :server;
printf("ok\n");
exit(0);
}
void sqlerror()
{
printf("sql connection error!\n");
exit(1);
}
错误信息如下:
-------------------Configuration: Exam01 - Win32 Debug--------------------
Compiling...
test.c
E:\test\pctest\Exam01\test.c(173) : error C2065: 'sqlca' : undeclared identifier
E:\test\pctest\Exam01\test.c(210) : error C2224: left of '.sqlcode' must have struct/union type
Error executing cl.exe.Exam01.exe - 2 error(s), 0 warning(s)
工程环境里面包含这个文件了吗,我想肯定没有的,
请从你的计算机中找到sqlca.h文件然后拷贝到该工程下面,
然后改为
#include "sqlca.h" 请试一试。
--------------------Configuration: Exam01 - Win32 Debug--------------------
Compiling...
test.c
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/Exam01.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.Exam01.exe - 2 error(s), 0 warning(s)
在Project中的Setting中,选Link选项,在下面的文本框里把/subsystem:windows 改为/subsystem:console
另外在Project Setting中的 C/C++选项里面添加 _CONSOLE ,删除_WINDOW。_CONSOLE的入口函数是main()
_WINDOW的入口为WinMain()
在Project Settings对话框的Link选项卡中的Link选项和C/C++选项中设置的内容都和你说的一样
void main(){