使用 SQLBulkOperations 更新資料

應用程式可以呼叫 SQLBulkOperations,在資料來源上的基礎資料表下執行大量更新、刪除、擷取或插入作業。 呼叫 SQLBulkOperations 是建構及執行 SQL 陳述式的一種方便替代方法。 即使資料來源不支援定點 SQL 陳述式,仍可讓 ODBC 驅動程式支援定點更新。 其為透過函式呼叫實現完整資料庫存取的範例一部分。

SQLBulkOperations 會在目前的資料列集上運作,而且只能在呼叫 SQLFetchSQLFetchScroll 之後使用。 應用程式會藉由快取其書籤,指定要更新、刪除或重新整理的資料列。 驅動程式會從資料列集緩衝區擷取要更新之資料列的新資料,或從資料列集緩衝區將新資料插入基礎資料表。

SQLBulkOperations 要使用的資料列集大小是由 SQLSetStmtAttr 的呼叫所設定,其 Attribute 引數為 SQL_ATTR_ROW_ARRAY_SIZE。 不同於 SQLSetPos 只有在呼叫 SQLFetchSQLFetchScroll之後,SQLSetPos 才會使用新的資料列集大小,SQLBulkOperations 會在呼叫 SQLSetStmtAttr 之後使用新的資料列集大小。

由於與關聯式資料庫的大部分互動都是透過 SQL 完成,因此 SQLBulkOperations 並未獲得廣泛支援。 不過,驅動程式可以透過建構和執行 UPDATEDELETEINSERT 陳述式,輕鬆地加以模擬。

若要判斷 SQLBulkOperation 支援哪些陳述式,應用程式會使用 SQL_DYNAMIC_CURSOR_ATTRIBUTES1、SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1、SQL_KEYSET_CURSOR_ATTRIBUTES1 或 SQL_STATIC_CURSOR_ATTRIBUTES1 資訊選項呼叫 SQLGetInfo (視資料指標的類型而定)。

此章節包含下列主題。