以下是我从网站获得的一个程序示例:http://www.csee.umbc.edu/portal/help/oracle8/server.815/a68022/sql.htm:
#include <stdio.h>
/* declare host variables */
char userid[12] = "SCOTT/TIGER";
char emp_name[10];
int emp_number;
int dept_number;
char temp[32];
void sql_error();
/* include the SQL Communications Area */
//#include <sqlca.h>
main()
{ emp_number = 7499;
/* handle errors */
EXEC SQL WHENEVER SQLERROR do sql_error("Oracle error");
/* connect to Oracle */
EXEC SQL CONNECT :userid;
printf("Connected.\n");
/* declare a cursor */
EXEC SQL DECLARE emp_cursor CURSOR FOR
SELECT ename
FROM emp
WHERE deptno = :dept_number;
每当编译器到达EXEC
语句时,就会发生编译错误:
E2451 SQL.CPP 17:函数main()
中未定义的符号'EXEC'
我正在使用Borland c ++ VER 5.5.1和SQL 2008 R2。
答案 0 :(得分:2)
这些SQL语句不是有效的C代码,需要在编译之前通过一个额外的预处理器,它知道如何将原始SQL语句转换为C语言。
从链接的前几章开始,尤其是Chapter 1,什么是Oracle预编译器?。
答案 1 :(得分:0)
该页面上的代码不是C ++ 。
这是与Pro*C/C++ Precompiler一起使用的特殊方言。 (链接从@ pb2q复制。)