使用 SQLBulkOperations 提取行
通过调用 SQLBulkOperations,可以使用书签将数据重新提取到行集中。要提取的行由绑定书签列中的书签标识。 不提取值为 SQL_COLUMN_IGNORE 的列。
要使用 SQLBulkOperations 执行批量提取,应用程序执行以下操作:
检索和缓存要更新的所有行的书签。 如果有多个书签,并且按列绑定,则书签存储在数组中;如果有多个书签,并且按行绑定,则书签存储在行结构数组中。
将 SQL_ATTR_ROW_ARRAY_SIZE 语句属性设置为要提取的行的数量,并将包含书签值的缓冲区或书签数组绑定到第 0 列。
根据需要设置每个列的长度/指示器缓冲区中的值。 这是绑定到字符串缓冲区的列的数据或 SQL_NTS 的字节长度,绑定到二进制缓冲区的列的数据的字节长度,以及要设置为 NULL 的任何列的 SQL_NULL_DATA。 应用程序将要设置为默认值(如果存在)或 NULL(如果不存在)的列的长度/指示符缓冲区中的值设置为 SQL_COLUMN_IGNORE。
调用 SQLBulkOperations,并将 Operation 参数设置为 SQL_FETCH_BY_BOOKMARK。
应用程序无需使用行操作数组来防止对某些列执行该操作。 应用程序只需将这些行的书签复制到绑定书签数组即可选择要提取的行。