【问题标题】:Can I use an SQL DECLARE section at global scope in Pro*C?我可以在 Pro*C 的全局范围内使用 SQL DECLARE 部分吗?
【发布时间】:2018-03-07 10:43:06
【问题描述】:

我正在尝试将 ~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=cppPARSE 选项设置为 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

}

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

【问题讨论】:

  • 当您尝试将它们包装在声明部分时发生了什么?
  • 我问是因为在我的环境中制作独立测试程序有很多障碍......

标签: c oracle-pro-c embedded-sql


【解决方案1】:

是的,你可以。

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

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 1970-01-01
    • 2020-07-17
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 2020-07-17
    相关资源
    最近更新 更多