使用DESCRIPTOR

方法4是动态SQL语句中最复杂也最灵活的一种使用方法。这种方法允许应用程序接受或者构建一个动态SQL语句,然后用描述符处理它。选择列表的项数、输入主变量的占位符个数和数据类型都可以到运行时再确定。这种方法适用于包含未知数目的选择列表和主变量的动态SQL语句。

如下语句:

SELECT * FROM argv[1];

这里SELECT的选择列表只有到运行时才能确定,所以事先对于查询结果的组成信息我们一无所知(而在方法3中,需要事先确定查询列的数目和输入宿主变量的值)。这时就需要使用描述符变量,它可以返回查询所得各个列的信息,包括列的名字、值、类型、长度、精确度等等。用户可以指定需要得到的列的项目,从而根据描述符所返回的结果获得相应的信息。

使用这种方法处理动态命令是最灵活的,它可以执行几乎所有的SQL命令,包括查询命令和非查询命令。使用描述符主要包括以下几个步骤:

ALLOCATE DESCRIPTOR:分配描述符,用于存放查询命令的结果信息;

GET DESCRIPTOR:从相关的描述符中获取查询结果;

DEALLOCATE DESCRIPTOR:释放分配的描述符。