- 论坛徽章:
- 0
|
我写了一个小的程序如下:
————————————————————————————————
ss.h
---------------------------------
typedef struct STROPEN
{
short userid;
char name[10];
char sex[2];
char city[10];
}OPEN;
————————————————————————————————-
ss.sqc
------------------------------------------------------------------------------
#include <stdio.h>;
#include <stdlib.h>;
#include <string.h>;
#include <sqlca.h>;
#include "./include/ss.h"
EXEC SQL INCLUDE SQLCA;
EXEC SQL INCLUDE SS;
main()
{
EXEC SQL BEGIN DECLARE SECTION;
char userid[9]="db2inst1";
char passwd[9]="db2inst1";
struct OPEN info;
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL WHENEVER NOT FOUND CONTINUE;
EXEC SQL connect to test user :userid using :passwd;
if (sqlca.sqlcode!=0)
{
printf("出错:sqlca.sqlcode=[%d]\n",sqlca.sqlcode);
printf("%s\n",sqlca.sqlerrmc);
return -1;
}
EXEC SQL DECLARE Open_cur CURSOR for select * from dbtest;
EXEC SQL OPEN Open_cur;
EXEC SQL FETCH Open_cur INTO :info;
if (sqlca.sqlcode!=0)
{
printf("出错:sqlca.sqlcode=[%d]\n",sqlca.sqlcode);
printf("%s\n",sqlca.sqlerrmc);
EXEC SQL CLOSE Open_cur;
EXEC SQL ROLLBACK;
return -1;
}
while(sqlca.sqlcode==0)
{
printf("name=%s\n",info.name);
EXEC SQL FETCH Open_cur INTO :info;
}
EXEC SQL CLOSE Open_cur;
EXEC SQL COMMIT;
EXEC SQL CONNECT RESET;
}
这样的程序在编译时总是会报错,若是我不用头文件,而直接在main中定义:
EXEC SQL BEGIN DECLARE SECTION;
struct STROPEN
{
short userid;
char name[10];
char sex[2];
char city[10];
}OPEN info;
EXEC SQL END DECLARE SECTION;
这样是可以编译通过的,但是我希望将结构体定义在头文件中,这该如何实现,望高手指点! |
|