конфликты типов данных в PRO * C и C ++ - PullRequest
0 голосов
/ 07 июня 2011

Я новичок в 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)

ОШИБКА:

   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 ]

1 голос
/ 07 июня 2011

Как показывает ошибка, символ «строка» не существует. Попробуйте вместо этого использовать varchar.

0 голосов
/ 15 сентября 2012

Не удается найти строку.

Вам может понадобиться std :: на передней панели, или вам нужно добавить пути включения в вызов Pro * C, чтобы препроцессор мог найти правильные файлы включения. Существуют и другие параметры Pro * C, которые могут влиять на ситуацию.

Можете ли вы показать нам весь make-файл?

0 голосов
/ 07 июня 2011

Насколько я знаю, Pro * C, как следует из названия, предполагает язык C - поэтому вы не можете использовать классы C ++, такие как std :: string, с ним.

...