- 论坛徽章:
- 0
|
我的程序如下,很简单,想查询数据,但是select * from tabel :db_table;我定义的变量db_table总是报错,好像是找不到db_table,为什么?
我define了一个DB_TABLE,而后STRCPY到db_table变量中,在select 语句中添加进去。预编译出错,如果将db_table换为确定的数据库名,就没有错!!
该怎么办?
程序如下:
- EXEC SQL INCLUDE SQLCA;
- EXEC SQL INCLUDE SQLDA;
- #define USERNAME "LUCKY"
- #define PASSWORD "sys"
- #define DB_NAME "DWP"
- #define DB_LINK "202.112.253.186"
- #define DB_TABLE "MMINFO1"
- EXEC SQL BEGIN DECLARE SECTION;
- VARCHAR username[20];
- VARCHAR password[20];
- VARCHAR db_name[20];
- VARCHAR db_link[20];
- char db_table[20];
- EXEC SQL END DECLARE SECTION;
- void sqlerror(char *msg)
- {
- printf("\n%s,%ld,%s\n",msg,sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
- EXEC SQL ROLLBACK WORK RELEASE;
- }
- int main(void)
- {
- EXEC SQL BEGIN DECLARE SECTION;
- char var1[100];
- char var2[4000];
- EXEC SQL END DECLARE SECTION;
- strcpy(username.arr,USERNAME);
- username.len = strlen(username.arr);
- strcpy(password.arr,PASSWORD);
- password.len = strlen(password.arr);
-
- strcpy(db_name.arr,DB_NAME);
- db_name.len = strlen(db_name.arr);
- strcpy(db_link.arr,DB_LINK);
- db_link.len = strlen(db_link.arr);
-
- strcpy(db_table,DB_TABLE);
-
- EXEC SQL WHENEVER SQLERROR DO sqlerror("ORACLE ERROR:");
-
- EXEC SQL CONNECT :username IDENTIFIED BY :password USING :db_name;
-
- EXEC SQL SELECT * INTO :var1, :var2 FROM[b] :db_table;(这里找不到????)[/b]
- printf("connected!!:)\n");
- EXEC SQL ROLLBACK WORK RELEASE;
- }
复制代码
请指点!! |
|