使用 SQLBulkOperations 插入行

使用 SQLBulkOperations 插入数据类似于使用 SQLBulkOperations 更新数据,因为它使用绑定应用程序缓冲区中的数据。

因此,新行中的每个列都有一个值,所有长度/标记值为 SQL_COLUMN_IGNORE 的绑定列和所有未绑定列都必须接受 NULL 值或具有默认值。

要使用 SQLBulkOperations 插入行,应用程序将执行以下操作:

  1. 将 SQL_ATTR_ROW_ARRAY_SIZE 语句属性设置为要插入的行数,并将新数据值放在绑定应用程序的缓冲区中。 有关如何使用 SQLBulkOperations 发送长数据的信息,请参阅长数据以及 SQLSetPos 和 SQLBulkOperations

  2. 根据需要设置每个列的长度/指示器缓冲区中的值。 这是绑定到字符串缓冲区的列的数据或 SQL_NTS 的字节长度,绑定到二进制缓冲区的列的数据的字节长度,以及要设置为 NULL 的任何列的 SQL_NULL_DATA。 应用程序将要设置为默认值(如果存在)或 NULL(如果不存在)的列的长度/指示符缓冲区中的值设置为 SQL_COLUMN_IGNORE。

  3. 调用 SQLBulkOperations,并将 Operation 参数设置为 SQL_ADD。

SQLBulkOperations 返回后,当前行保持不变。 如果书签列(第 0 列)已绑定,SQLBulkOperations 将返回绑定到该列的行集缓冲区中插入行的书签。