Как обеспечить массовое копирование данных из переменных приложения (ODBC)

Образец, показывающий использование функций массового копирования для массового копирования данных из переменных программы в SQL Server с помощью bcp_bind и bcp_sendrow. (Код проверки ошибок удален, чтобы упростить пример.)

Полный образец кода находится в файле: BulkCopyFromVariables.cpp, который можно загрузить из страницы SQL Server Code Samples. Этот образец разработан с помощью Microsoft Visual C++ 2005 и предназначен для ODBC версии 3.0 и выше.

Security Note По возможности используйте проверку подлинности Windows. Если проверка подлинности Windows недоступна, запросите у пользователя ввод учетных данных во время выполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранение учетных данных, зашифруйте их с помощью API-интерфейса шифрования Win32.

Использование функций массового копирования непосредственно с переменными программ

  1. Выделите дескриптор среды и дескриптор соединения.

  2. Чтобы включить операции массового копирования, укажите параметры SQL_COPT_SS_BCP и SQL_BCP_ON.

  3. Соединитесь с SQL Server.

  4. Вызовите функцию bcp_init, указав следующие сведения.

    • Имя таблицы или представления, из которого или в которое будет производиться массовое копирование.

    • Укажите NULL для имени файла данных.

    • Имя файла данных, в который сохраняются все сообщения об ошибках массового копирования (укажите значение NULL, если файл для сообщений не требуется).

    • Направление копирования: DB_IN из приложения в представление или таблицу, или DB_OUT в приложение из таблицы или представления.

  5. Вызовите функцию bcp_bind для каждого столбца в массовой копии, чтобы привязать столбец к переменной программы.

  6. Заполните переменные программы данными и вызовите функцию bcp_sendrow, чтобы передать строку данных.

  7. После передачи нескольких строк вызовите функцию bcp_batch, чтобы установить контрольную точку для уже переданных строк. Рекомендуется вызывать функцию bcp_batch по крайней мере один раз на каждые 1000 строк.

  8. После передачи всех строк вызовите функцию bcp_batch, чтобы завершить операцию.

Можно изменять местонахождение и длину переменных программы во время операции массового копирования, вызывая функции bcp_colptr и bcp_collen. Используйте функцию bcp_control, чтобы установить различные параметры массового копирования. Используйте функцию bcp_moretext для передачи данных text, ntext и image в сегментах на сервер.