bcp_readfmt
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 aver letto i valori di formato, bcp_readfmt, 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 ai formati salvati. Per ulteriori informazioni, vedere bcp_init.
In alternativa, l'utilità per la copia bulk (bcp) può salvare i formati di dati definiti dall'utente nei file ai quali può fare riferimento bcp_readfmt. Per ulteriori informazioni sull'utilità bcp e sulla struttura dei file di formato dei dati di bcp, vedere Informazioni sull'importazione ed esportazione bulk di dati (SQL Server).
Il valore BCPDELAYREADFMT del parametro eOption di bcp_control modifica il comportamento di bcp_readfmt.
[!NOTA]
È necessario che il file di formato sia 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.