Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Define as opções para uma operação de cópia em massa.
Sintaxe
HRESULT BCPControl(
inteOption,
void *iValue);
Observações
O método BCPControl define vários parâmetros de controle para operações de cópia em massa, incluindo o número de erros permitidos antes de cancelar uma cópia em massa, os números da primeira e última linhas a serem copiadas de um arquivo de dados e o tamanho do lote.
Esse método também é usado para especificar a instrução SELECT a ser usada ao copiar dados em massa do SQL Server. Você pode definir o eOption argumento como BCP_OPTION_HINTS e iValue argumento para ter um ponteiro para uma cadeia de caracteres larga contendo a instrução SELECT.
Os valores possíveis para eOption são:
| Opção | Descrição |
|---|---|
| BCP_OPTION_ABORT | Interrompe uma operação de cópia em massa que já está em andamento. Você pode chamar o método BCPControl com um argumento eOption de BCP_OPTION_ABORT de outro thread para interromper uma operação de cópia em massa em execução. O argumento iValue é ignorado. |
| BCP_OPTION_BATCH | O número de linhas por lote. O padrão é 0, que indica todas as linhas em uma tabela quando os dados estão sendo extraídos ou todas as linhas no arquivo de dados do usuário quando os dados estão sendo copiados para o SQL Server. Um valor menor que 1 redefine BCP_OPTION_BATCH para o padrão. |
| BCP_OPTION_DELAYREADFMT | Um booliano, se definido como true, fará com que IBCPSession::BCPReadFmt seja lido na execução. Se false (o padrão), IBCPSession::BCPReadFmt lerá imediatamente o arquivo de formato. Ocorrerá um erro de sequência se BCP_OPTION_DELAYREADFMT for true e você chamar IBCPSession::BCPColumns ou IBCPSession::BCPColFmt.Um erro de sequência também ocorrerá se você chamar após a IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) chamada IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) e IBCPSession::BCPWriteFmt.Para obter mais informações, consulte a Descoberta de Metadados. |
| BCP_OPTION_FILECP | O argumento iValue contém o número da página de código do arquivo de dados. Você pode especificar o número da página de código, como 1252 ou 850, ou um dos seguintes valores: - BCP_FILECP_ACP: os dados no arquivo estão no Microsoft Windows?? página de código do cliente. - BCP_FILECP_OEMCP: os dados no arquivo estão na página de código OEM do cliente (padrão). - BCP_FILECP_RAW: os dados no arquivo estão na página de código do SQL Server. |
| BCP_OPTION_FILEFMT | O número de versão do formato do arquivo de dados. Isso pode ser 80 (SQL Server 2000), 90 (SQL Server 2005), 100 (SQL Server 2008 ou SQL Server 2008 R2), 110 (SQL Server 2012) ou 120 (SQL Server 2014. 120 é o padrão. Isso é útil para exportar e importar dados em formatos compatíveis com a versão anterior do servidor. Por exemplo, para importar dados obtidos de uma coluna de texto em um servidor SQL Server 2000 em uma coluna varchar(max) em um SERVIDOR SQL Server 2005 ou posterior, você deve especificar 80. Da mesma forma, se você especificar 80 durante a exportação de dados de uma coluna varchar(max ), ela será salva assim como colunas de texto são salvas no formato SQL Server 2000 e podem ser importadas para uma coluna de texto de um servidor SQL Server 2000. |
| BCP_OPTION_FIRST | A primeira linha de dados do arquivo ou da tabela a ser copiada. O padrão é 1; um valor menor que 1 redefine essa opção para seu padrão. |
| BCP_OPTION_FIRSTEX | Para operações de saída bcp, especifica a primeira linha da tabela de banco de dados a ser copiada para o arquivo de dados. Para BCP em operações, especifica a primeira linha do arquivo de dados a ser copiada para a tabela de banco de dados. Espera-se que o parâmetro iValue seja o endereço de um inteiro de 64 bits assinado que contém o valor. O valor máximo que pode ser passado para BCPFIRSTEX 2^63-1. |
| BCP_OPTION_FMTXML | Usado para especificar que o arquivo de formato gerado deve estar em um formato XML. Ele está desativado por padrão e, por padrão, os arquivos de formato são salvos como arquivos de texto. O arquivo de formato XML oferece maior flexibilidade, mas com algumas restrições adicionais. Por exemplo, você não pode especificar o prefixo e o terminador para um campo simultaneamente, o que é possível em arquivos de formato mais antigos. Nota: Os arquivos de formato XML só têm suporte quando as ferramentas do SQL Server são instaladas junto com o SQL Server Native Client. |
| BCP_OPTION_HINTS | O argumento iValue contém um ponteiro de cadeia de caracteres largo. A cadeia de caracteres endereçada especifica dicas de processamento de cópia em massa do SQL Server ou uma instrução Transact-SQL que retorna um conjunto de resultados. Se uma instrução Transact-SQL for especificada que retorna mais de um conjunto de resultados, todos os conjuntos de resultados após o primeiro serão ignorados. |
| BCP_OPTION_KEEPIDENTITY | Quando o argumento iValue é definido como TRUE, essa opção especifica que os métodos de cópia em massa inserem valores de dados fornecidos para colunas do SQL Server definidas com uma restrição de identidade. O arquivo de entrada deve fornecer valores para as colunas de identidade. Se isso não estiver definido, novos valores de identidade serão gerados para as linhas inseridas. Todos os dados presentes no arquivo para as colunas de identidade são ignorados. |
| BCP_OPTION_KEEPNULLS | Especifica se os valores de dados vazios no arquivo serão convertidos em valores NULL na tabela do SQL Server. Quando o argumento iValue for definido como TRUE, os valores vazios serão convertidos em NULL na tabela do SQL Server. O padrão é que valores vazios sejam convertidos em um valor padrão para a coluna na tabela do SQL Server se houver um padrão. |
| BCP_OPTION_LAST | A última linha a ser copiada. O padrão é copiar todas as linhas. Um valor menor que 1 redefine essa opção para seu padrão. |
| BCP_OPTION_LASTEX | Para operações de saída bcp, especifica a última linha da tabela de banco de dados a ser copiada para o arquivo de dados. Para BCP em operações, especifica a última linha do arquivo de dados a ser copiada para a tabela de banco de dados. Espera-se que o parâmetro iValue seja o endereço de um inteiro de 64 bits assinado que contém o valor. O valor máximo que pode ser passado para BCPLASTEX é 2^63-1. |
| BCP_OPTION_MAXERRS | O número de erros permitidos antes que a operação de cópia em massa falhe. O padrão é 10. Um valor menor que 1 redefine essa opção para seu padrão. A cópia em massa impõe um máximo de 65.535 erros. Uma tentativa de definir essa opção para um valor maior que 65.535 resulta na opção sendo definida como 65.535. |
| BCP_OPTION_ROWCOUNT | Retorna o número de linhas afetadas pela operação BCP atual (ou última). |
| BCP_OPTION_TEXTFILE | O arquivo de dados não é um arquivo binário, mas é um arquivo de texto. O BCP faz a detecção se o arquivo de texto é Unicode ou não verificando o marcador de bytes Unicode nos dois primeiros bytes do arquivo de dados. |
| BCP_OPTION_UNICODEFILE | Quando definida como TRUE, essa opção especifica que o arquivo de entrada é um formato de arquivo Unicode. |
Argumentos
eOption[in]
Defina como uma das opções listadas na seção de comentários acima.
iValue[in]
O valor do eOption especificado. O argumento iValue é um valor inteiro convertido em um ponteiro nulo para permitir a expansão futura para valores de 64 bits.
Valores do código de retorno
S_OK
O método foi bem-sucedido.
E_FAIL
Ocorreu um erro específico do provedor; para obter informações detalhadas, use a interface ISQLServerErrorInfo .
E_UNEXPECTED
A chamada para o método era inesperada. Por exemplo, o método IBCPSession::BCPInit não foi chamado antes de chamar essa função.
E_OUTOFMEMORY
Erro de memória insuficiente.