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
Realiza a operação de cópia em massa.
Sintaxe
HRESULT BCPExec(
DBROWCOUNT *pRowsCopied);
Observações
O método BCPExec copia dados de um ficheiro de utilizador para uma tabela de base de dados ou vice-versa, dependendo do valor do parâmetro eDirection usado com o método IBCPSession::BCPInit .
Antes de chamar o BCPExec, chame o método BCPInit com um nome de ficheiro de utilizador válido. Não o fazer resulta num erro. A única exceção é se uma consulta for usada para uma operação de cópia em massa. Nesse caso, especifique NULL para o nome da tabela no método BCPInit e depois especifique a consulta usando a opção BCP_OPTION_HINTS.
O método BCPExec é o único método de cópia em massa que provavelmente permanecerá pendente durante algum tempo. É, portanto, o único método de cópia em massa que suporta o modo assíncrono. Para usar o modo assíncrono, defina a propriedade de sessão específica do fornecedor SSPROP_ASYNCH_BULKCOPY para VARIANT_TRUE antes de chamar o método BCPExec . Esta propriedade está disponível no conjunto de propriedades DBPROPSET_SQLSERVERSESSION. Para testar a completude, chame o método BCPExec com os mesmos parâmetros. Se a cópia em massa ainda não estiver concluída, o método BCPExec devolve DB_S_ASYNCHRONOUS. Também devolve no argumento pRowsCopied uma contagem de estado do número de linhas que foram enviadas ou recebidas do servidor. As linhas enviadas para o servidor não são comprometidas até que o fim de um lote seja alcançado.
Arguments
pRowCopiado[desligado]
Um apontar para um DWORD. O método BCPExec preenche o DWORD com o número de linhas copiadas com sucesso. Se o argumento pRowsCopied estiver definido como NULL, é ignorado pelo método BCPExec .
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 BCPInit não era chamado antes de chamar este método. Também ocorre se a operação foi abortada usando a opção BCP_OPTION_ABORT, e o método BCPExec foi chamado posteriormente.
E_OUTOFMEMORY
Erro de falta de memória.
DB_S_ENDOFROWSET
A operação de cópia em massa terminou e toda a transferência de dados foi concluída.
DB_S_ASYNCHRONOUS
O lote atual de linhas foi copiado. Chame novamente o método BCPExec para transferir o próximo lote.
DB_S_ERRORSOCCURRED
Ocorreram erros durante a operação de cópia em massa, e algumas linhas podem não ter sido copiadas. O número de erros continua a ser inferior ao máximo permitido.
Ver também
IBCPSession (OLE DB)
Realização de Operações de Cópia em Massa