Partilhar via


bcp_readfmt

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Lê uma definição de formato do arquivo de dados do arquivo de formato especificado.

Sintaxe

  
RETCODE bcp_readfmt (  
        HDBC hdbc,  
        LPCTSTR szFormatFile);  

Argumentos

hdbc
É o identificador de conexão ODBC habilitado para cópia em massa.

szFormatFile
É o caminho e o nome do arquivo que contém os valores de formato para o arquivo de dados.

Devoluções

SUCCEED ou FAIL.

Comentários

Depois bcp_readfmt lê os valores de formato, ele faz as chamadas apropriadas para bcp_columns e bcp_colfmt. Não há necessidade de você analisar um arquivo de formato e fazer essas chamadas.

Para manter um arquivo de formato, chame bcp_writefmt. As chamadas de bcp_readfmt podem referenciar formatos salvos. Para obter mais informações, consulte bcp_init.

Como alternativa, o utilitário de cópia em massa (bcp) pode salvar formatos de dados definidos pelo usuário em arquivos que podem ser referenciados por bcp_readfmt. Para obter mais informações sobre o utilitário bcp e a estrutura dos arquivos de formato de dados bcp, consulte Importação e exportação em massa de dados (SQL Server).

O valor BCPDELAYREADFMT do parâmetro eOption de bcp_control modifica o comportamento de bcp_readfmt.

Observação

O arquivo de formato deve ter sido gerado pela versão 4.2 ou posterior do utilitário bcp .

Exemplo

// Variables like henv not specified.  
HDBC      hdbc;  
DBINT      nRowsProcessed;  
  
// Application initiation, get an ODBC environment handle, allocate the  
// hdbc, and so on.  
...   
  
// Enable bulk copy prior to connecting on allocated hdbc.  
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (SQLPOINTER) SQL_BCP_ON,  
   SQL_IS_INTEGER);  
  
// Connect to the data source, return on error.  
if (!SQL_SUCCEEDED(SQLConnect(hdbc, _T("myDSN"), SQL_NTS,  
   _T("myUser"), SQL_NTS, _T("myPwd"), SQL_NTS)))  
   {  
   // Raise error and return.  
   return;  
   }  
  
// Initialize bulk copy.   
if (bcp_init(hdbc, _T("myTable"), _T("myData.csv"),  
   _T("myErrors"),    DB_IN) == FAIL)  
   {  
   // Raise error and return.  
   return;  
   }  
  
if (bcp_readfmt(hdbc, _T("myFmtFile.fmt")) == FAIL)  
   {  
   // Raise error and return.  
   return;  
   }  
  
if (bcp_exec(hdbc, &nRowsProcessed) == SUCCEED)  
   {  
   cout << nRowsProcessed << " rows copied to SQL Server\n";  
   }  
  
// Carry on.  

Confira também

Funções de cópia em massa