Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Задает параметры для операции массового копирования.
Синтаксис
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)
Выполнение операций массового копирования