延迟的字段

设置延迟字段的值时不使用这些值,但驱动程序会保存变量的地址以用于延迟效果。 对于应用程序参数描述符,驱动程序在调用 SQLExecDirectSQLExecute 时使用变量的内容。 对于应用程序行描述符,驱动程序在提取时使用变量的内容。

以下是延迟的字段:

  • 描述符记录的 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 字段。)

在将变量与延迟字段关联以及驱动程序从这些字段读取内容或向其写入内容期间,应用程序不得解除分配或放弃用于延迟字段的变量。