Поделиться через


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

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

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

Размер набора строк, используемый SQLBulkOperations , задается вызовом SQLSetStmtAttr с аргументом атрибута 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 информации (в зависимости от типа курсора).

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