bcp_writefmt
Crea un file di formato che contiene una descrizione del formato del file di dati della copia bulk corrente.
Sintassi
RETCODE bcp_writefmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Argomenti
hdbc
Handle di connessione ODBC abilitato per la copia bulk.szFormatFile
Percorso e nome del file utente per ricevere i valori di formato per il file di dati.
Valori restituiti
SUCCEED o FAIL.
Osservazioni
Il file di formato specifica il formato dei dati di un file di dati creato dalla copia bulk. Le chiamate a bcp_columns e bcp_colfmt definiscono il formato del file di dati. bcp_writefmt salva questa definizione nel file a cui fa riferimento szFormatFile. Per ulteriori informazioni, vedere bcp_init.
Per ulteriori informazioni sulla struttura dei file di formato dei dati bcp, vedere Utilizzo dei file di formato.
Per caricare un file di formato salvato, utilizzare bcp_readfmt.
Nota
Il file di formato prodotto da bcp_writefmt è supportato solo dalle versioni dell'utilità bcp distribuita con SQL Server versione 7.0 e successive.
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_OUT) == FAIL)
{
// Raise error and return.
return;
}
if (bcp_columns(hdbc, 3) == FAIL)
{
// Raise error and return.
return;
}
bcp_colfmt(hdbc, 1, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 1);
bcp_colfmt(hdbc, 2, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 2);
bcp_colfmt(hdbc, 3, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 3);
if (bcp_writefmt(hdbc, _T("myFmtFile.fmt")) == FAIL)
{
// Raise error and return.
return;
}
if (bcp_exec(hdbc, &nRowsProcessed) == SUCCEED)
{
printf_s("%ld rows copied from SQL Server\n", nRowsProcessed);
}
// Carry on.