更新日期:2024年09月11日
GBase 8s ESQL/C 运行开发者指定用于一组语句的运行时上下文。运行上下文保存
GBase 8s ESQL/C 必须维护的所有特定于线程的数据,包括当前状态和游标。
此功能允许 GBase 8s ESQL/C 程序员能够提高其 MESQL/C 应用程序的性能。通过
使用 SQLCONTEXT 定义和指令,减少了线程特定数据块查找的数量。
以下嵌入式 SQL 语句支持运行上下文的定义和用法:
SQLCONTEXT context_var;
PARAMETER SQLCONTEXT param_context_var;
BEGIN SQLCONTEXT OPTIMIZATION;
END SQLCONTEXT OPTIMIZATION;
仅在使用 esql-thread 选项时才能识别 SQLCONTEXT 定义和语句。如果未指定
-thread 选项,则忽略此语句。
SQLCONTEXT 语句的用法导致 ESQL/C 预处理器在 .c 文件中生成的代码与不存
在 SQLCONTEXT 语句时生成的代码的不同。
下列 SQLCONTEXT 定义生成代码来定义并将 SQLCONTEXT 的值设置为运行上
下文的句柄:
SQLCONTEXT context_var;
以下 SQLCONTEXT 用于生成代码来定义包含运行上下文句柄的参数:
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 399 -
PARAMETER SQLCONTEXT param_context_var;
以下 BEGIN SQLCONTEXT 指令使源文件中的所有语句都位于其中,以使用指定的
运行时上下文,直到看到 END CONTEXT 指令:
BEGIN SQLCONTEXT OPTIMIZATION;
...
END SQLCONTEXT OPTIMIZATION;
END SQLCONTEXT 指令出现在当前使用的 SQLTCONTEXT 定义的范围之前,或
者发生“undefined symbol sql_context_var”错误编译时。