//////在vc中编译时加载oraSQL8.lib文件
#pragma comment(lib,"oraSQL8.lib")#include "stdio.h"
#include "string.h"
#include "stdlib.h"EXEC SQL INCLUDE SQLCA;//////////数据库联接
int Ora_conn()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR usr[20],pass[20],serv[20];
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR GOTO sqlerr; strcpy(usr.arr,"lcj");
usr.len=(unsigned short)strlen((char*)usr.arr);
strcpy(pass.arr,"lcj");
pass.len=(unsigned short)strlen((char*)pass.arr);
strcpy(serv.arr,"zlodb");
serv.len=(unsigned short)strlen((char*)serv.arr);
EXEC SQL CONNECT :usr IDENTIFIED BY :pass USING :serv;
printf("Connect!\n");
return 1;
sqlerr:
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("%s\n",sqlca.sqlerrm.sqlerrmc);
return 0;
}/////调用存储过程
call_p(userid)
{
EXEC SQL BEGIN DECLARE SECTION;
char userid_p[10];
EXEC SQL END DECLARE SECTION;
strcpy(userid_p,userid);
EXEC SQL EXECUTE
BEGIN
prtest(:userid_p,'124','1234');
END;
END-EXEC; }
void main()
{
EXEC SQL BEGIN DECLARE SECTION; /*sql中用到的变量*/
char userid[9];
int conn;
EXEC SQL END DECLARE SECTION;
conn=Ora_conn();
printf("请输入userid的值:\n");
scanf("%s",&userid);
call_p(userid);
}
#pragma comment(lib,"oraSQL8.lib")#include "stdio.h"
#include "string.h"
#include "stdlib.h"EXEC SQL INCLUDE SQLCA;//////////数据库联接
int Ora_conn()
{
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR usr[20],pass[20],serv[20];
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR GOTO sqlerr; strcpy(usr.arr,"lcj");
usr.len=(unsigned short)strlen((char*)usr.arr);
strcpy(pass.arr,"lcj");
pass.len=(unsigned short)strlen((char*)pass.arr);
strcpy(serv.arr,"zlodb");
serv.len=(unsigned short)strlen((char*)serv.arr);
EXEC SQL CONNECT :usr IDENTIFIED BY :pass USING :serv;
printf("Connect!\n");
return 1;
sqlerr:
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("%s\n",sqlca.sqlerrm.sqlerrmc);
return 0;
}/////调用存储过程
call_p(userid)
{
EXEC SQL BEGIN DECLARE SECTION;
char userid_p[10];
EXEC SQL END DECLARE SECTION;
strcpy(userid_p,userid);
EXEC SQL EXECUTE
BEGIN
prtest(:userid_p,'124','1234');
END;
END-EXEC; }
void main()
{
EXEC SQL BEGIN DECLARE SECTION; /*sql中用到的变量*/
char userid[9];
int conn;
EXEC SQL END DECLARE SECTION;
conn=Ora_conn();
printf("请输入userid的值:\n");
scanf("%s",&userid);
call_p(userid);
}
.......
EXEC SQL BEGIN DECLARE SECTION;
double gzje,fsje,hxje,pdje ;
int nresult ;
char sqlstr[500],agcode[20];
char date[9],zoneno[5];
EXEC SQL END DECLARE SECTION; ConnectDB(); strcpy(date,"20040120");
strcpy(zoneno,"1402"); EXEC SQL execute
begin
test(:zoneno,:date,:gzje,:pdje,:fsje,:hxje,:nresult);
end ;
END-EXEC ;
...........
编译后报错:
Pro*C/C++: Release 8.1.6.3.0 - Production on 星期五 2月 20 08:53:46 2004(c) Copyright 1999 Oracle Corporation. All rights reserved.System default option values taken from: /oracle/precomp/admin/pcscfg.cfgSemantic error at line 56, column 12, file test.pc:
EXEC SQL execute
...........1
PCC-S-02345, SQLCHECK=SEMANTICS must be given when embedded PL/SQL blocks are us
ed
make: 1254-004 The error code from the last command is 1.
Stop.