编译器错误E2451函数main()中的未定义符号'EXEC'

时间:2012-07-16 16:42:14

标签: sql c oracle

以下是我从网站获得的一个程序示例: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。

2 个答案:

答案 0 :(得分:2)

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

从链接的前几章开始,尤其是Chapter 1什么是Oracle预编译器?

答案 1 :(得分:0)

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

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