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_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
Недостаточно памяти.
См. также