检索结果(高级)

当调用 SQLBulkOperations、SQLFetch、SQLFetchScroll 或 SQLSetPos 时,应用程序可以指定向绑定的数据缓冲区地址和相应的长度/标记缓冲区地址添加偏移量。 这些添加的结果决定了这些操作中使用的地址。

绑定偏移量允许应用程序更改绑定,而无需为以前绑定的列调用 SQLBindCol。 调用 SQLBindCol 以重新绑定数据会更改缓冲区地址和长度/标记指针。 另一方面,使用偏移量重新绑定只是向现有绑定数据缓冲区地址和长度/标记缓冲区地址添加偏移量。 使用偏移量时,绑定是应用程序缓冲区布局方式的“模板”,应用程序可以通过更改偏移量将此“模板”移动到不同内存区域。 可以随时指定新的偏移量,并且该偏移量始终会添加到原始绑定的值。

若要指定绑定偏移量,应用程序会将 SQL_ATTR_ROW_BIND_OFFSET_PTR 语句属性设置为 SQLINTEGER 缓冲区的地址。 在应用程序调用使用绑定的函数(例如 SQLBulkOperations、SQLFetch、SQLFetchScroll 或 SQLSetPos)之前,只要数据缓冲区地址和长度/标记缓冲区地址都不是 0,只要绑定列位于结果集中,它就会以字节为单位在此缓冲区中放置偏移量。 地址和偏移量的总和必须是有效的地址。 (这意味着,只要总和是有效地址,则偏移量和/或增加偏移量和地址可以是无效的。)SQL_ATTR_ROW_BIND_OFFSET_PTR 语句属性是一个指针,以便偏移量值可以应用于多个绑定数据集,所有这些数据集都可以通过更改一个偏移值进行更改。 应用程序必须确保指针在游标关闭之前保持有效。

注意

ODBC 2.x 驱动程序不支持绑定偏移量。

本部分包含以下主题。