GBase8s数据库GET DESCRIPTOR 语句

使用 GET DESCRIPTOR 语句来从系统描述符区域读取

用法

请随同 GBase 8s ESQL/C 使用此语句。

使用 GET DESCRIPTOR 语句来完成下列所有任务:

确定系统描述符区域描述了多少项。

确定系统描述符区域中描述的每一列或表达式的特征。

将值从系统描述符区域复制到 FETCH 语句之后的主变量。

在您以 DESCRIBE . . . USING SQL DESCRIPTOR 语句描述 EXECUTE FUNCTION、INSERT、

SELECT 或 UPDATE 之后,可使用 GET DESCRIPTOR。

您在 GET DESCRIPTOR 语句中引用的主变量必须在程序的 BEGIN DECLARE SECTION 中声

明。

如果在赋值给任何指定的主变量期间发生错误,则主变量的内容未定义。

示例

下列 ESQL/C 示例展示如何随同主变量使用 GET DESCRIPTOR 语句来确定名为 desc1: GET

DESCRIPTOR 的系统描述符区域中描述了多少项

main()

{

EXEC SQL BEGIN DECLARE SECTION;

int h_count;

EXEC SQL END DECLARE SECTION;

EXEC SQL allocate descriptor ‘desc1’ with max 20;

/* 这部分程序会将 SELECT 或 INSERT 语句准备到 s_id 语句 id 内。

*/EXEC SQL describe s_id using sql descriptor ‘desc1’;

EXEC SQL get descriptor ‘desc1’ :h_count = count;

EXEC SQL get descriptor ‘demodesc’ value

:index :type = TYPE,

:len = LENGTH,

:name = NAME;

printf(“Column %d: type = %d, len = %d, name = %s\n”,

index, type, len, name);

下列 ESQL/C 示例展示您可如何将数据从 DATA 域赋值到访存之后的主变量(结果)内。对于此示

例,预先约定所有返回值具有相同的数据类型:

EXEC SQL get descriptor ‘demodesc’ :desc_count = count;

… .

EXEC SQL fetch democursor using sql descriptor ‘demodesc’;

for (i = 1; i <= desc_count; i++)

{

if (sqlca.sqlcode != 0) break;

EXEC SQL get descriptor ‘demodesc’ value :i :result = DATA;

printf("%s ", result);

}

printf("\n");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值