bcp_readfmt
Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)
Legge una definizione di formato di file di dati dal file di formato specificato.
Sintassi
RETCODE bcp_readfmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Argomenti
hdbc
Handle di connessione ODBC abilitato per la copia bulk.
szFormatFile
Percorso e nome del file contenente i valori di formato per il file di dati.
Valori restituiti
SUCCEED o FAIL.
Osservazioni:
Dopo che bcp_readfmt legge i valori di formato, effettua le chiamate appropriate a bcp_columns e bcp_colfmt. L'utente può evitare di analizzare un file di formato ed effettuare queste chiamate.
Per rendere persistente un file di formato, chiamare bcp_writefmt. Le chiamate a bcp_readfmt possono fare riferimento a formati salvati. Per altre informazioni, vedere bcp_init.
In alternativa, l'utilità di copia bulk (bcp) può salvare i formati di dati definiti dall'utente nei file a cui è possibile fare riferimento bcp_readfmt. Per altre informazioni sull'utilità bcp e sulla struttura dei file di formato dati bcp, vedere Importazione ed esportazione bulk di dati (SQL Server).For more information about the bcp utility and the structure of bcp data format files, see Bulk Import and Export of Data (SQL Server).
Il valore BCPDELAYREADFMT del parametro eOption di bcp_control modifica il comportamento di bcp_readfmt.
Nota
Il file di formato deve essere stato prodotto dalla versione 4.2 o successiva dell'utilità bcp .
Esempio
// 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.