自动填充 IPD
某些驱动程序能够在准备好参数化查询后设置 IPD 的字段。 描述符字段会自动填充有关该参数的信息,包括数据类型、精度、小数位数及其他特征。 这就等效于支持 SQLDescribeParam。 当应用程序没有其他发现信息的方法时,例如使用应用程序不知道的参数执行即席查询时,这些信息对应用程序尤其有价值。
应用程序通过调用属性为 SQL_ATTR_AUTO_IPD 的 SQLGetConnectAttr 来确定驱动程序是否支持自动填充。 如果返回 SQL_TRUE,则表示驱动程序支持自动填充,应用程序可以通过将 SQL_ATTR_ENABLE_AUTO_IPD 语句属性设置为 SQL_TRUE 来启用自动填充。
当支持并启用自动填充时,驱动程序在 SQL 语句(包含参数标记的 SQL 语句通过调用 SQLPrepare)后填充 IPD 的字段。 应用程序可以通过调用 SQLGetDescField、SQLGetDescRec 或 SQLDescribeParam 来检索这些信息。 应用程序可以使用这些信息为参数绑定最合适的应用程序缓冲区,或为其指定数据转换。
自动填充 IPD 可能会降低性能。 应用程序可以通过将 SQL_ATTR_ENABLE_AUTO_IPD 语句属性重置为 SQL_FALSE(默认值)来将其关闭。