Как выполнить массовое копирование без файла форматирования (ODBC)

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

Примечание по безопасностиПримечание по безопасности

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

Для массового копирования без файла форматирования

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

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

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

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

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

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

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

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

  5. Чтобы выполнить операцию массового копирования, вызовите функцию bcp_exec.

Когда установлен DB_OUT при выполнении данных шагов, файл создается в собственном формате. Файл затем можно массово скопировать на сервер, выполняя эти простые шаги, за исключением того, что вместо DB_IN необходимо установить DB_OUT. Это работает только если таблица исходная и целевая таблицы имеют абсолютно одинаковую структуру.