IBCPSession::BCPControl (OLE DB)

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

Синтаксис

  
HRESULT BCPControl(   
inteOption,  
void *iValue);  

Замечания

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

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

Возможные значения для eOption :

Вариант Описание
BCP_OPTION_ABORT Останавливает операцию массового копирования, которая уже выполняется. Метод BCPControl можно вызвать с аргументом eOption BCP_OPTION_ABORT из другого потока, чтобы остановить выполнение операции массового копирования. Аргумент iValue игнорируется.
BCP_OPTION_BATCH Количество строк на пакет. Значение по умолчанию — 0, указывающее все строки в таблице при извлечении данных или все строки в файле данных пользователя при копировании данных в SQL Server. Значение меньше 1 сбрасывает BCP_OPTION_BATCH по умолчанию.
BCP_OPTION_DELAYREADFMT Логическое значение, если задано значение true, приведет к чтению IBCPSession::BCPReadFmt при выполнении. Если значение false (по умолчанию), IBCPSession::BCPReadFmt немедленно считывает файл формата. Ошибка последовательности возникает, если BCP_OPTION_DELAYREADFMT имеет значение true, и вызывается IBCPSession::BCPColumns или IBCPSession::BCPColFmt.

Ошибка последовательности также возникает при вызове IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) после вызова IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) и IBCPSession::BCPWriteFmt.

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

- BCP_FILECP_ACP: данные в файле в Microsoft Windows?? кодовая страница клиента.
— BCP_FILECP_OEMCP: данные в файле находится на кодовой странице OEM клиента (по умолчанию).
— BCP_FILECP_RAW: данные в файле находится на кодовой странице SQL Server.
BCP_OPTION_FILEFMT Номер версии формата файла данных. Это может быть 80 (SQL Server 2000), 90 (SQL Server 2005), 100 (SQL Server 2008 или SQL Server 2008 R2), 110 (SQL Server 2012) или 120 (SQL Server 2014). Значение по умолчанию — 120. Это полезно для экспорта и импорта данных в форматах, поддерживаемых более ранней версией сервера. Например, чтобы импортировать данные, полученные из текстового столбца на сервере SQL Server 2000, в столбец varchar(max) на сервере SQL Server 2005 или более поздней версии, следует указать 80. Аналогичным образом, если указать 80 при экспорте данных из столбца varchar(max), он будет сохранен так же, как текстовые столбцы сохраняются в формате SQL Server 2000 и могут быть импортированы в текстовый столбец сервера SQL Server 2000.
BCP_OPTION_FIRST Первая строка данных файла или таблицы для копирования. Значение по умолчанию — 1; Значение меньше 1 сбрасывает этот параметр по умолчанию.
BCP_OPTION_FIRSTEX Для операций BCP out указывает первую строку таблицы базы данных для копирования в файл данных.

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

Ожидается, что параметр iValue будет адресом 64-разрядного целого числа со знаком, содержащего значение. Максимальное значение, которое можно передать в BCPFIRSTEX 2^63-1.
BCP_OPTION_FMTXML Используется для указания того, что созданный файл форматирования должен быть в формате XML. Он отключен по умолчанию и по умолчанию файлы форматирования сохраняются в виде текстовых файлов. XML-файл форматирования обеспечивает большую гибкость, но с некоторыми дополнительными ограничениями. Например, нельзя указать префикс и терминатор для поля одновременно, что возможно в старых файлах форматирования. Заметка: XML-файлы форматирования поддерживаются только при установке средств SQL Server вместе с собственным клиентом SQL Server.
BCP_OPTION_HINTS Аргумент iValue содержит широкий указатель строки символов. Адресная строка указывает указания по обработке массового копирования SQL Server или инструкцию Transact-SQL, возвращающую результирующий набор. Если указана инструкция Transact-SQL, возвращающая несколько результирующих наборов, все результирующие наборы после первого пропускаются.
BCP_OPTION_KEEPIDENTITY Если аргумент iValue имеет значение TRUE, этот параметр указывает, что методы массового копирования вставляют значения данных, предоставленные для столбцов SQL Server, определенных с ограничением удостоверения. Входной файл должен указать значения для столбцов удостоверений. Если это не задано, для вставленных строк создаются новые значения удостоверений. Все данные, присутствующих в файле для столбцов удостоверений, игнорируются.
BCP_OPTION_KEEPNULLS Указывает, будут ли пустые значения данных в файле преобразованы в значения NULL в таблице SQL Server. Если аргумент iValue имеет значение TRUE, пустые значения преобразуются в NULL в таблице SQL Server. Значение по умолчанию предназначено для преобразования пустых значений в значение по умолчанию для столбца в таблице SQL Server, если по умолчанию существует.
BCP_OPTION_LAST Последняя строка для копирования. Значение по умолчанию — копировать все строки. Значение меньше 1 сбрасывает этот параметр по умолчанию.
BCP_OPTION_LASTEX Для операций BCP out указывает последнюю строку таблицы базы данных для копирования в файл данных.

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

Ожидается, что параметр iValue будет адресом 64-разрядного целого числа со знаком, содержащего значение. Максимальное значение, которое можно передать в BCPLASTEX, равно 2^63-1.
BCP_OPTION_MAXERRS Количество ошибок, разрешенных до сбоя операции массового копирования. Значение по умолчанию — 10. Значение меньше 1 сбрасывает этот параметр по умолчанию. Массовая копия накладывает не более 65 535 ошибок. Попытка задать этот параметр значением, превышающим 65 535, приводит к тому, что параметр имеет значение 65 535.
BCP_OPTION_ROWCOUNT Возвращает количество строк, затронутых текущей (или последней) операцией BCP.
BCP_OPTION_TEXTFILE Файл данных не является двоичным файлом, но текстовым файлом. BCP обнаруживает, является ли текстовый файл Юникодом или нет, проверяя маркер байтов Юникода в первых 2 байтах файла данных.
BCP_OPTION_UNICODEFILE Если задано значение TRUE, этот параметр указывает, что входной файл является форматом файла Юникода.

Аргументы

eOption[in]
Задайте для одного из параметров, перечисленных в приведенном выше разделе примечаний.

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

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

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

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

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

E_OUTOFMEMORY (Ошибка: Недостаточно памяти)
Ошибка вне памяти.

См. также

IBCPSession (OLE DB)
Выполнение операций массового копирования