0

我正在尝试将 ~2000 行 Pro*C 程序移植到 C++ (Pro*C++)。它充满了在 SQL 查询中用作主变量的全局变量:

char var1;
char var2;

int execute_query() {

    // some code

    EXEC SQL SELECT ... INTO :var1
    EXEC SQL SELECT ... INTO :var2

    // some code

}

但是,code=cpp在预编译器选项中,该PARSE选项设置为PARTIAL,这意味着预编译器仅识别在一个DECLARE部分中声明的宿主变量。

我可以用声明部分包围全局变量吗?

EXEC SQL BEGIN DECLARE SECTION

   char var1;
   char var2;

EXEC SQL END DECLARE SECTION

int execute_query() {

    // some code

    EXEC SQL SELECT ... INTO :var1
    EXEC SQL SELECT ... INTO :var2

    // some code

}

如果没有,是否有另一种方法可以使预编译器识别全局变量而无需进行大量重构?

4

1 回答 1

0

是的你可以。

经过一番折腾,我终于设法创建了一个独立的 Pro*C 程序来测试它,我可以确认它可以工作。

于 2018-03-08T10:20:09.327 回答