Обновление данных с помощью SQLBulkOperations

Приложения могут выполнять операции массового обновления, удаления, извлечения или вставки в базовую таблицу в источнике данных с вызовом SQLBulkOperations. Вызов SQLBulkOperations — это удобная альтернатива созданию и выполнению инструкции SQL. Это позволяет драйверу ODBC поддерживать позиционные обновления, даже если источник данных не поддерживает позиционные инструкции SQL. Она является частью парадигмы достижения полного доступа к базе данных с помощью вызовов функций.

SQLBulkOperations работает с текущим набором строк и может использоваться только после вызова SQLFetch или SQLFetchScroll. Приложение указывает, какие строки нужно обновить, удалить или повторно извлечь, кэшируя их закладки. Драйвер извлекает новые данные для обновляемых строк или новые данные, которые необходимо вставить в базовую таблицу, из буферов набора строк.

Размер набора строк, используемого SQLBulkOperations, задается вызовом SQLSetStmtAttr с аргументом Attribute, равным SQL_ATTR_ROW_ARRAY_SIZE. В отличие от SQLSetPos, который использует новый размер набора строк только после вызова SQLFetch или SQLFetchScroll, SQLBulkOperations использует новый размер набора строк после вызова SQLSetStmtAttr.

Так как большинство взаимодействий с реляционными базами данных выполняется через SQL, SQLBulkOperations широко не поддерживается. Однако драйвер может легко эмулировать это, создав и выполнив оператор UPDATE, DELETE или INSERT.

Чтобы определить, какие операции поддерживает SQLBulkOperation , приложение вызывает SQLGetInfo с параметром SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1 или SQL_STATIC_CURSOR_ATTRIBUTES1 информации (в зависимости от типа курсора).

Этот раздел содержит следующие подразделы.