Updating Data with SQLBulkOperations
SQLBulkOperations operates on the current rowset and can be used only after a call to SQLFetch or SQLFetchScroll. The application specifies the rows to update, delete, or refresh by caching
their bookmarks. The driver retrieves the new data for rows to be updated, or
the new data to be inserted into the underlying table, from the rowset buffers.
The rowset size to be used by SQLBulkOperations is set by a call to SQLSetStmtAttr with an Attribute argument of SQL_ATTR_ROW_ARRAY_SIZE. Unlike SQLSetPos, which uses a new rowset size only after a call to SQLFetch or SQLFetchScroll, SQLBulkOperations uses the new rowset size after the call to SQLSetStmtAttr.
Because most interaction with relational databases is done through SQL, SQLBulkOperations is not widely supported. However, a driver can easily emulate it by
constructing and executing an UPDATE, DELETE, or INSERT statement.
To determine what operations SQLBulkOperation supports, an application calls SQLGetInfo with the SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1,
SQL_KEYSET_CURSOR_ATTRIBUTES1, or SQL_STATIC_CURSOR_ATTRIBUTES1 information
option (depending on the type of the cursor).