使用 SQLBulkOperations 插入行

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

因此,为了使新行中的每个列都有一个值,所有长度/指示器值为 SQL_COLUMN_IGNORE 的绑定列都必须接受 NULL 值或有默认值。另外,所有未绑定列也必须接受 NULL 值或有默认值。

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

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

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

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

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