我在VC中用PRO*C/C++,想写个SQL语句,其中表名字不是固定的--应该怎么做呢?
我在VC中用PRO*C/C++,想写个SQL语句,其中表名字不是固定的,语句如下,为什么不正确呢?应该如何更改?
int i = Connect();//连接数据库的函数
if(i != 0)
return i;
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR MobileNumber[21];
unsigned short WeekCount;
unsigned short WeekSc[10];
char SQLSTATE[6];
char test[100];
EXEC SQL END DECLARE SECTION;
memset(MobileNumber.arr, 0x00, 21);
strcpy((char *)MobileNumber.arr,MoNum);
MobileNumber.len = strlen((char *)MobileNumber.arr);
memset(test,0x00,100);
sprintf(test,"SELECT SCORE FROM %s WHERE MOBILENUMBER=:MobileNumber",week);
EXEC SQL PREPARE mm FROM :test;;
EXEC SQL DECLARE cur CURSOR FOR mm;
EXEC SQL OPEN cur;//错误发生在这里。SQLSTATE=72000
//其中week是表的名字,通过参数传过来。
请问:打开游标的时候为什么发生错误呢?应该如何更改?有人说不能用动态SQL,而应该使用OCI?(这我也不太懂。)