PRO * C和C ++中的数据类型冲突

时间:2011-06-07 12:16:42

标签: c++ oracle-pro-c

我是proc的新手,我正在使用C ++。

我能够连接到数据库。 但在那之后,当我尝试触发查询时,它给了我错误。

代码:

EXEC SQL BEGIN DECLARE SECTION;
   string custName=cusName;
   long int custID=cusID;
  EXEC SQL END DECLARE SECTION;

  EXEC SQL insert into tbl_customer5 values(:custID,:custName)

ERROR:

   Syntax error at line 42, column 4, file Customer.pc:
    Error at line 42, column 4 in file Customer.pc
       string custName=cusName;
    ...1
    PCC-S-02201, Encountered the symbol "string" when expecting one of the following

:

   auto, char, const, double, enum, extern, float, int, long,
   ulong_varchar, OCIBFileLocator OCIBlobLocator,
   OCIClobLocator, OCIDateTime, OCIExtProcContext, OCIInterval,
   OCIRowid, OCIDate, OCINumber, OCIRaw, OCIString, register,
   short, signed, sql_context, sql_cursor, static, struct,
   typedef, union, unsigned, utext, uvarchar, varchar, void,
   volatile, a typedef name, a precompiled header, exec oracle,
   exec oracle begin, exec, exec sql, exec sql begin,
   exec sql end, exec sql type, exec sql var, exec sql include,
The symbol "enum," was substituted for "string" to continue.

请告诉我如何解决此错误。 在这种情况下我们可以使用数据等价吗?

3 个答案:

答案 0 :(得分:1)

如错误所示,“字符串”符号不存在。尝试使用varchar。

答案 1 :(得分:0)

找不到字符串。

你可能需要在它前面使用std :: 或者你需要为Pro * C调用添加包含路径,以允许预处理器找到正确的包含文件。 还有其他Pro * C选项可以影响事物。

你能告诉我们整个makefile吗?

答案 2 :(得分:-1)

据我所知,Pro * C是因为它的名字暗示了C语言的东西 - 因此你不能使用像std :: string这样的C ++类。