Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Lê uma definição de formato de arquivo de dados do arquivo de formato especificado.
Sintaxe
RETCODE bcp_readfmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Nomes Unicode e ANSI:
- bcp_readfmtA (ANSI)
- bcp_readfmtW (Unicode)
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
TER SUCESSO ou FALHAR.
Comentários
Depois que bcp_readfmt lê os valores de formato, ele faz as chamadas apropriadas para bcp_columns e bcp_colfmt. Não há necessidade de analisar um arquivo de formato e fazer essas chamadas.
Para persistir um arquivo de formato, chame bcp_writefmt. As chamadas para bcp_readfmt podem fazer referência a formatos guardados. 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
O BCPDELAYREADFMT valor do eOption parâmetro de bcp_control modifica o comportamento de bcp_readfmt.
Observação
O arquivo de formato deve ser produzido pela versão 4.2 ou posterior do utilitário
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.