返回首页

gbase数据、南大通用产品文档:GBase8s在编译时刻不知道的 SQL 语句

更新日期:2024年09月11日

在编译时刻不知道的 SQL 语句通常是用户在交互式应用程序中输入的语句。

当您编写像 DB-Access 一样的交互式数据库查询应用程序时,您提前不知道用户想
要访问哪些数据库、表或列,或不知道用户可能在 WHERE 子句中应用什么条件。如果
GBase 8s ESQL/C 应用程序翻译并运行用户输入的 SQL 语句,则直到在运行时刻用户输
入该语句之后,此应用程序才知道在主变量中要存储什么类型的信息。

例如,如果程序包含下列 DELETE 语句,则基于受影响的列,您知道接收的值的数
目及数据类型:
DELETE FROM customer WHERE city = ? AND lname > ?

您可定义其数据类型与它们接收的数据类型相兼容的主变量。然而,假设您的程序为
用户提供提示,诸如:
对于 stores7 数据库,请输入 DELETE 语句:

在此情况下,
直到运行时刻,
您才知道 DELETE 在其上发生的表名称,
或在 WHERE

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 464 -

子句中罗列的列名称。因此,您不可声明必要的主变量。

您可动态地确定准备好的 SQL 语句以及关于它以 DESCRIBE 语句和动态管理结果
访问的表和列的信息。

SDK 和 GBase 8s Connect

启动用户登陆审计
按照3.2 节方法,配置审计规则,启用“用户登陆类”事件,可启用的事件仅包括一个“登
陆事件”