Condividi tramite


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.

Vedere anche

Riferimento