描述符句柄

描述符是元数据集合,描述应用程序或驱动程序所看到的 SQL 语句的参数或结果集列(也称为实现)。 因此,描述符可以填充以下四个角色中的任何一个:

  • 应用程序参数描述符 (APD)。 包含有关绑定到 SQL 语句中参数的应用程序缓冲区的信息,例如其地址、长度和 C 数据类型。

  • 实现参数描述符 (IPD)。 包含有关 SQL 语句中参数的信息,例如其 SQL 数据类型、长度和可为 null 性。

  • 应用程序行描述符 (ARD)。 包含有关绑定到结果集中列的应用程序缓冲区的信息,例如其地址、长度和 C 数据类型。

  • 实现行描述符 (IRD)。 包含有关结果集中列的信息,例如其 SQL 数据类型、长度和可为 null 性。

分配语句时,会自动分配四个描述符(每个角色填充一个描述符)。 这些描述符称为自动分配的描述符,并且始终与该语句相关联。 应用程序还可以使用 SQLAllocHandle 分配描述符。 这些描述符称为显式分配的描述符。 在连接上分配这些描述符,并且这些描述符可以与该连接上的一个或多个语句相关联,以便在这些语句中履行 APD 或 ARD 的角色。

ODBC 中的大多数操作无需应用程序显式使用描述符即可执行。 但是,描述符为某些操作提供了便捷的快捷方式。 例如,假设应用程序想要插入两组不同的缓冲区中的数据。 若要使用第一组缓冲区,该应用程序将重复调用 SQLBindParameter,以便将其绑定到 INSERT 语句中的参数,然后执行该语句。 若要使用第二组缓冲区,该应用程序将重复此过程。 或者,该应用程序可以在一个描述符中设置第一组缓冲区的绑定,在另一个描述符中设置第二组缓冲区的绑定。 若要在绑定组之间进行切换,应用程序只需调用 SQLSetStmtAttr 并将正确的描述符作为 APD 与该语句相关联即可。

有关描述符的详细信息,请参阅描述符的类型