设置延迟字段时,其值不会被使用,但驱动程序会保存变量的地址以实现延迟效果。 对于应用程序参数描述符,驱动程序在调用 SQLExecDirect 或 SQLExecute 时使用变量的内容。 对于应用程序行描述符,驱动程序在提取时使用变量的内容。
以下是推迟的字段:
描述符记录的SQL_DESC_DATA_PTR和SQL_DESC_INDICATOR_PTR字段。
应用程序描述符记录的SQL_DESC_OCTET_LENGTH_PTR字段。
对于多行检索,描述符标头的SQL_DESC_ARRAY_STATUS_PTR和SQL_DESC_ROWS_PROCESSED_PTR字段。
分配描述符时,每个描述符记录的延迟字段最初具有 null 值。 null 值的含义如下所示:
如果SQL_DESC_ARRAY_STATUS_PTR具有 null 值,则多行提取无法返回每行诊断信息的此组件。
如果SQL_DESC_DATA_PTR具有 null 值,则记录未绑定。
如果 ARD 的 SQL_DESC_OCTET_LENGTH_PTR 字段具有 null 值,驱动程序不会返回该列的长度信息。
如果 APD 的 SQL_DESC_OCTET_LENGTH_PTR 字段具有 null 值,并且参数为字符串,驱动程序假定字符串为 null 终止。 对于输出动态参数,此字段中的 null 值可防止驱动程序返回长度信息。 (如果SQL_DESC_TYPE字段未指示字符串参数,则忽略SQL_DESC_OCTET_LENGTH_PTR字段。
应用程序在将变量与延迟加载字段关联后,到驱动程序读取或写入这些字段之间,不得解除分配或放弃这些变量。