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


IBCPSession::BCPControl (OLE DB)

Задает параметры для операции массового копирования.

Синтаксис

        HRESULT BCPControl(       int eOption,      void *iValue);

Замечания

Метод BCPControl задает различные параметры управления для операций массового копирования, в том числе количества ошибок, допустимых перед отменой массового копирования, номеров первой и последней строк, копируемых из файла данных, и размера пакетов.

Этот метод также применяется, чтобы назначить использование инструкции SELECT при массовом копировании данных из SQL Server. Можно назначить аргументу eOption значение BCP_OPTION_HINTS, а аргументу iValue указатель на строку знаков в Юникоде, содержащую инструкцию SELECT.

Метод BCPControl задает переменные элемента BCP-структуры, чтобы активировать параметры, установленные пользователем. Допустимы следующие параметры:

Параметр

Описание

BCP_OPTION_ABORT

Останавливает текущую операцию массового копирования. Можно вызвать метод BCPControl с аргументом eOption, равным BCP_OPTION_ABORT, из другого потока, чтобы остановить текущую операцию массового копирования. Аргумент iValue не учитывается.

BCP_OPTION_BATCH

Количество строк в пакете. Значение по умолчанию 0, которое указывает все строки в таблице, когда извлекаются данные, или все строки в файле пользовательских данных, копируемом в SQL Server. При значении менее 1 параметр BCP_OPTION_BATCH возвращается к значению по умолчанию.

BCP_OPTION_FILECP

Аргумент iValue содержит номер кодовой страницы для файла данных. Можно указать номер кодовой страницы, такой как 1252 или 850, или одно из следующих значений:

  • BCP_FILECP_ACP: данные в файле имеют кодовую страницу Microsoft Windows® клиента.

  • BCP_FILECP_OEMCP: данные в файле имеют кодовую страницу OEM клиента (по умолчанию).

  • BCP_FILECP_RAW: данные в файле в кодовой странице SQL Server.

BCP_OPTION_FIRST

Первая строка данных копируемого файла или таблицы. Значение по умолчанию равно 1. Если задать для этого параметра значение меньше 1, то будет установлено значение по умолчанию.

BCP_OPTION_FIRSTEX

В операциях bcp out задает первую строку таблицы базы данных для копирования в файл данных.

В операциях bcp in задает первую строку файла данных для копирования в таблицу базы данных.

Параметр iValue должен представлять адрес 64-разрядного целого числа со знаком, содержащего значение. Максимальное значение, передаваемое в BCPFIRSTEX, составляет 2^63-1.

BCP_OPTION_HINTS

Аргумент iValue содержит указатель строки знаков в Юникоде. Адресуемая строка задает подсказки для обработки массового копирования SQL Server или инструкцию Transact-SQL, которая возвращает результирующий набор. Если указана инструкция Transact-SQL, которая возвращает более одного результирующего набора, все результирующие наборы после первого не учитываются.

BCP_OPTION_KEEPIDENTITY

Когда аргумент iValue установлен в значение TRUE, этот параметр указывает, что методы массового копирования вставляют значения данных, предоставленные для столбцов SQL Server, определенных с ограничением IDENTITY. Входной файл должен содержать значения для столбцов идентификаторов. Если эти значения не заданы, то для вставляемых строк создаются новые значения идентификаторов. Данные в файле, предназначенные для столбцов идентификаторов, не учитываются.

BCP_OPTION_KEEPNULLS

Указывает, будут ли пустые значения данных в файле преобразовываться в значения NULL в таблице SQL Server. Когда аргументу iValue присвоено значение TRUE, пустые значения будут преобразовываться в значения NULL в таблице SQL Server. По умолчанию пустые значения преобразовываются в значения по умолчанию для столбца в таблице SQL Server, если значение по умолчанию существует.

BCP_OPTION_LAST

Последняя строка для копирования. По умолчанию копируются все строки. При значении менее 1 этот параметр возвращается к значению по умолчанию.

BCP_OPTION_LASTEX

В операциях bcp out задает последнюю строку таблицы базы данных для копирования в файл данных.

В операциях bcp in задает последнюю строку файла данных для копирования в таблицу базы данных.

Параметр iValue должен представлять адрес 64-разрядного целого числа со знаком, содержащего значение. Максимальное значение, передаваемое в BCPLASTEX, составляет 2^63-1.

BCP_OPTION_MAXERRS

Допустимое число ошибок, при достижении которого операция массовой загрузки завершается неудачей. Значение по умолчанию равно 10. Если задать для этого параметра значение меньше 1, то будет установлено значение по умолчанию. В операции массового копирования допускается не более 65 535 ошибок. Если выполнить попытку установить этот параметр в значение, превышающее 65 535, будет установлено значение 65 535.

BCP_OPTION_UNICODEFILE

Если установлено значение TRUE, этот параметр указывает, что входной файл представлен в формате Юникода.

BCP_OPTION_TEXTFILE

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

BCP_OPTION_FILEFMT

Номер версии для формата файла данных. Это может быть 70 (SQL Server 7.0), 80 (SQL Server 2000), 90 (SQL Server 2005) или 100. 100 — значение по умолчанию, указывает, что файл представлен в формате SQL Server 2008. Это может оказаться полезным при экспорте или импорте данных в форматах, которые поддерживались прежними версиями сервера. Например, чтобы импортировать данные, полученные из текстового столбца в сервере SQL Server 2000, в столбец varchar(max) в сервере SQL Server 2005 или более поздней версии, нужно указать значение 80. Аналогично, если указать 80 при экспорте данных из столбца varchar(max), он будет сохранен также, как сохраняются текстовые столбцы в формате SQL Server 2000, и может быть импортирован в текстовый столбец сервера SQL Server 2000.

BCP_OPTION_FMTXML

Используется, чтобы указать, что созданный файл форматирования должен быть в формате XML. Он отключен по умолчанию, и по умолчанию файлы форматирования сохраняются как текстовые файлы. XML-файл форматирования обеспечивает более высокую гибкость, но связан с некоторыми дополнительными ограничениями. Например, нельзя указать для поля одновременно префикс и признак конца, что было возможно в старых файлах форматирования.

ПримечаниеПримечание
XML-файлы форматирования поддерживаются только при установке средств SQL Server вместе с собственным клиентом SQL Server.

BCP_OPTION_ROWCOUNT

Возвращает число строк, на которые распространяется действие текущей (или последней) операции bcp.

Аргументы

  • eOption[in]
    Присваивается один из параметров, перечисленных в следующей таблице.

  • iValue[in]
    Значение для указанного eOption. Аргумент iValue есть целое значение, приведенное к указателю void, чтобы обеспечить расширение в будущем до 64-разрядных значений.

Значения кода возврата

  • S_OK
    Метод выполнен успешно.

  • E_FAIL
    Произошла ошибка, связанная с поставщиком. Подробные сведения можно получить при помощи интерфейса ISQLServerErrorInfo.

  • E_UNEXPECTED
    Непредвиденный вызов метода. Например, перед вызовом этой функции не был вызван метод IBCPSession::BCPInit.

  • E_OUTOFMEMORY
    Недостаточно памяти.

См. также

Основные понятия

Другие ресурсы