在线等待!一个PROC的配置问题,如何才能使用host variable
平台:windows2000
ORACLE版本 9.0.1.1.1
当我使用PROC预编译的时候,如果代码写成这个样子就能顺利通过预编译
#include <sqlca.h>
#include <stdio.h>
int main()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR username[20];
VARCHAR passwd[20];
VARCHAR buffer[1024];
EXEC SQL END DECLARE SECTION;
strcpy(username.arr,"XXXXX");
username.len=strlen(username.arr);
strcpy(passwd.arr,"XXXXX");
passwd.len=strlen(passwd.arr);
EXEC SQL CONNECT :username IDENTIFIED BY :passwd;
printf("haha log success\n");
EXEC SQL SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS') INTO :buffer FROM DUAL;
buffer.arr[buffer.len]='\0';
printf("the oracle date is %s\n",buffer.arr);
EXEC SQL COMMIT WORK RELEASE;
printf("haha exit success\n");
}
但是如果是这样子
#include <sqlca.h>
#include <stdio.h>
int main()
{
char username[]="caldata";
char passwd[]="caldata";
char buffer[1024];
EXEC SQL CONNECT :username IDENTIFIED BY :passwd;
printf("haha log success\n");
EXEC SQL SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS') INTO :buffer FROM DUAL;
printf("the oracle time is %s\n",buffer);
EXEC SQL COMMIT WORK RELEASE;
printf("haha exit success\n");
}
就报了如下的错误
Semantic error at line 23, column 27, file C:\temp\pctest\src\test2.pc:
EXEC SQL CONNECT :username IDENTIFIED BY :passwd;
..........................1
PCC-S-02322, found undefined identifier
每一个变量都会报一个这样的错。
我知道第二种方法是可以的,目前我们的程序就是这么写的,但是我要做些什么才能让第二种方式的程序顺利通过预编译呢