Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Define as opções para uma operação de cópia em massa.
Sintaxe
HRESULT BCPControl(
int eOption,
void *iValue);
Observações
O método BCPControl define vários parâmetros de controlo 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 linha a copiar de um ficheiro de dados e o tamanho do lote.
Este método também é usado para especificar a instrução SELECT a usar ao copiar dados em massa do SQL Server. Podes definir o argumento eOption para BCP_OPTION_HINTS e o argumento iValue para terem um ponteiro para uma cadeia larga de caracteres contendo a instrução SELECT.
Os valores possíveis para o eOption são:
| Opção | Description |
|---|---|
| BCP_OPTION_ABORT | Para uma operação de cópia em massa que já está em curso. Pode chamar o método BCPControl com um argumento eOption de BCP_OPTION_ABORT de outro thread para impedir uma operação de cópia em massa em execução. O argumento do iValue é ignorado. |
| BCP_OPTION_BATCH | O número de linhas por lote. O padrão é 0, que indica todas as linhas de uma tabela quando os dados estão a ser extraídos, ou todas as linhas do ficheiro de dados do utilizador quando os dados estão a ser copiados para o SQL Server. Um valor inferior a 1 reinicia BCP_OPTION_BATCH para o padrão. |
| BCP_OPTION_DELAYREADFMT | Um Booleano, se definido como verdadeiro, fará com que IBCPSession::BCPReadFmt leia na execução. Se for false (o padrão), IBCPSession::BCPReadFmt irá imediatamente ler o ficheiro de formato. Um erro de sequência ocorrerá se BCP_OPTION_DELAYREADFMT for verdadeiro e chamares IBCPSession::BCPColumns ou IBCPSession::BCPColFmt. Um erro de sequência também ocorrerá se ligar IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) após ligar IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) para IBCPSession::BCPWriteFmt.Para mais informações, consulte Descoberta de Metadados. |
| BCP_OPTION_FILECP | O argumento iValue contém o número da página de código do ficheiro de dados. Pode especificar o número da página de códigos, como 1252 ou 850, ou um dos seguintes valores: BCP_FILECP_ACP: os dados no ficheiro estão na página de código do Microsoft Windows do cliente. BCP_FILECP_OEMCP: os dados no ficheiro estão na página de códigos OEM do cliente (por defeito). BCP_FILECP_RAW: os dados no ficheiro estão na página de códigos do SQL Server. |
| BCP_OPTION_FILEFMT | O número de versão do formato de ficheiro de dados. Isto pode ser 80 (SQL Server 2000 (8.x)), 90 (SQL Server 2005 (9.x)), 100 (SQL Server 2008 (10.0.x) ou SQL Server 2008 R2 (10.50.x)), ou 110 (SQL Server 2012 (11.x)). 110 é o padrão. Isto é útil para exportar e importar dados em formatos suportados por versões anteriores do servidor. Por exemplo, para importar dados obtidos de uma coluna de texto num servidor SQL Server 2000 (8.x) para uma coluna varchar(max) num servidor SQL Server 2005 (9.x) ou posterior, deve especificar 80. De forma semelhante, se especificar 80 ao exportar dados de uma coluna varchar(max ), será guardado tal como as colunas de texto são guardadas no formato SQL Server 2000 (8.x), podendo ser importado para uma coluna de texto de um servidor SQL Server 2000 (8.x). |
| BCP_OPTION_FIRST | A primeira linha de dados do ficheiro ou tabela a copiar. O padrão é 1; um valor inferior a 1 reinicia esta opção para o seu padrão. |
| BCP_OPTION_FIRSTEX | Para operações de saída BCP, especifica a primeira linha da tabela da base de dados a copiar para o ficheiro de dados. Para BCP em operações, especifica a primeira linha do ficheiro de dados a copiar para a tabela da base de dados. Espera-se que o parâmetro iValue seja o endereço de um inteiro assinado de 64 bits que contém o valor. O valor máximo que pode ser passado ao BCPFIRSTEX 2^63-1. |
| BCP_OPTION_FMTXML | Usado para especificar que o ficheiro de formato gerado deve estar em formato XML. Está desligado por defeito e os ficheiros de formato são guardados como ficheiros de texto. O ficheiro de formato XML oferece maior flexibilidade, mas com algumas restrições adicionais. Por exemplo, não pode especificar simultaneamente o prefixo e o terminador de um campo, o que é possível em ficheiros de formatos mais antigos. Nota: Antes do Driver OLE DB 18.6.0, os ficheiros em formato XML só eram suportados quando as ferramentas SQL Server estavam instaladas juntamente com o Driver OLE DB para SQL Server. |
| BCP_OPTION_HINTS | O argumento iValue contém um ponteiro de string de caracteres largo. A cadeia endereçada especifica ou dicas de processamento em massa do SQL Server ou uma instrução Transact-SQL que devolve um conjunto de resultados. Se for especificada uma afirmação Transact-SQL que devolve mais do que um conjunto de resultados, todos os conjuntos de resultados após o primeiro são ignorados. |
| BCP_OPTION_KEEPIDENTITY | Quando o argumento iValue é definido como TRUE, esta opção especifica que os métodos de cópia em massa inserem valores de dados fornecidos para colunas SQL Server definidas com uma restrição de identidade. O ficheiro de entrada deve fornecer valores para as colunas de identidade. Se isto não estiver definido, são gerados novos valores de identidade para as linhas inseridas. Qualquer dado presente no ficheiro para as colunas de identidade é ignorado. |
| BCP_OPTION_KEEPNULLS | Especifica se os valores de dados vazios no ficheiro serão convertidos em valores NULL na tabela do SQL Server. Quando o argumento iValue é definido para TRUE, valores vazios serão convertidos em NULL na tabela do SQL Server. O padrão é que valores vazios sejam convertidos para valores por defeito para a coluna na tabela do SQL Server, caso exista um padrão. |
| BCP_OPTION_LAST | A última linha para copiar. O padrão é copiar todas as linhas. Um valor inferior a 1 reinicia esta opção para o seu padrão. |
| BCP_OPTION_LASTEX | Para operações de saída BCP, especifica a última linha da tabela da base de dados para copiar para o ficheiro de dados. Para BCP em operações, especifica a última linha do ficheiro de dados a ser copiada para a tabela da base de dados. Espera-se que o parâmetro iValue seja o endereço de um inteiro assinado de 64 bits que contém o valor. O valor máximo que pode ser transmitido ao BCPLASTEX é 2^63-1. |
| BCP_OPTION_MAXERRS | O número de erros permitidos antes da operação de cópia em massa falhar. O padrão é 10. Um valor inferior a 1 reinicia esta opção para o seu padrão. A cópia em massa impõe um máximo de 65.535 erros. Uma tentativa de definir esta opção para um valor superior a 65.535 resulta na definição da opção para 65.535. |
| BCP_OPTION_ROWCOUNT | Devolve o número de linhas afetadas pela operação BCP atual (ou última). |
| BCP_OPTION_TEXTFILE | O ficheiro de dados não é um ficheiro binário, mas sim um ficheiro de texto. O BCP detete se o ficheiro de texto é Unicode ou não verificando o marcador de bytes Unicode nos primeiros 2 bytes do ficheiro de dados. |
| BCP_OPTION_UNICODEFILE | Quando definida como TRUE, esta opção especifica que o ficheiro de entrada é um formato Unicode. |
Arguments
eOption[in]
Defina para uma das opções listadas na secção de comentários acima.
iValue[em]
O valor do eOption especificado. O argumento iValue é um valor inteiro lançado para um ponteiro void para permitir uma expansão futura para valores de 64 bits.
Valores do código de retorno
S_OK
O método teve sucesso.
E_FAIL
Ocorreu um erro específico do fornecedor; para obter informações detalhadas, use a interface ISQLServerErrorInfo .
E_UNEXPECTED
A chamada para o método foi inesperada. Por exemplo, o método IBCPSession::BCPInit não era chamado antes de chamar esta função.
E_OUTOFMEMORY
Erro de falta de memória.
Ver também
IBCPSession (OLE DB)
Realização de Operações de Cópia em Massa