1

这是我从网站上获得的程序示例: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。

4

2 回答 2

2

这些 SQL 语句不是有效的 C 代码,在编译之前需要经过额外的预处理器,它知道如何将原始 SQL 语句转换为 C。

从您的链接的前几章开始,特别是第 1 章什么是 Oracle 预编译器?.

于 2012-07-16T16:47:15.977 回答
0

该页面上的代码不是 C++

它是与Pro*C/C++ Precompiler一起使用的特殊方言。(从@pb2q 复制的链接。)

于 2012-07-16T17:26:15.837 回答