Share via


使用 SQLBulkOperations 擷取資料列

您可以呼叫 SQLBulkOperations.,使用書籤將資料重新擷取至資料列集中。要擷取的資料列是由繫結書籤資料行中的書籤所識別。 不會擷取具有 SQL_COLUMN_IGNORE 此值的資料行。

利用 SQLBulkOperations 執行大量擷取時,應用程式會進行下列動作:

  1. 擷取並快取要更新之所有資料列的書籤。 如果使用多個書籤和資料行取向的繫結,則書籤會儲存在陣列中;如果有多個書籤,而且使用資料行取向的繫結,則書籤會儲存在資料列結構的陣列中。

  2. 將 SQL_ATTR_ROW_ARRAY_SIZE 陳述式屬性設定為要擷取的資料列數目,並將包含書籤值的緩衝區或書籤陣列繫結至資料行 0。

  3. 請視需要設定每個資料行的長度/指標緩衝區中的值。 對於繫結至字串緩衝區的資料行,這是資料位元組長度或 SQL_NTS;對於繫結至二進位緩衝區的資料行,是資料位元組長度;如果是要設為 Null 的資料行,則會是 SQL_Null_DATA。 此應用程式會針對要設為預設值 (如果有) 或 NULL (如果沒有預設值) 的資料行,將其長度/指標緩衝區中的值設為 SQL_COLUMN_IGNORE。

  4. 呼叫 SQLBulkOperations,其中 Operation 引數設為 SQL_FETCH_BY_BOOKMARK。

應用程式不需要使用資料列作業陣列來防止在特定資料行上執行作業。 應用程式只會將想要擷取的資料列書籤,複製到繫結書籤陣列,以選取那些資料列。