Share via


使用 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 (視資料指標的類型而定)。

此章節包含下列主題。