动态主变量

支持动态地分配数据对象的 SQL API 进动态语句更进一步。它们允许您动态地分配接收列数据的主变量。

变量的动态分配使得有可能从程序输入中取到任意的 SELECT 语句,确定它产生多少个值及其数据类型,并分配适当类型的主变量来保存它们。

此功能的关键是 DESCRIBE 语句。它取到准备好的 SQL 语句的名称,并返回关于该语句及其内容的信息。它设置 SQLCODE 来指定语句的类型;即,它开头的动词。如果准备好的语句是 SELECT 语句,则 DESCRIBE 语句还返回关于选择了的输出数据的信息。如果准备好的语句是 INSERT 语句,则 DESCRIBE 语句返回关于输入参数的信息。DESCRIBE 语句返回信息的数据结构是预定义的数据结构,为此用途分配该数据结构并称为系统描述符区域。如果您正在使用 GBase 8s ESQL/C,则可使用系统描述符区域,或作为 sqlda 结构的替代方案。

DESCRIBE 语句返回的或为 SELECT 语句引用的数据结构包括结构的一个数组。每一结构描述为选择类表中一个项目的数据。程序可检测该数组并发现包括十进制值、某长度的字符值以及整数的一行数据。

利用此信息,程序可分配保存接收了的数据的内存,并为要使用的数据库服务器将必要的指针放置在该数据结构中。