Dela via


bcp_writefmt

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Skapar en formatfil som innehåller en beskrivning av formatet för den aktuella masskopieringsdatafilen.

Syntax

  
RETCODE bcp_writefmt (  
        HDBC hdbc,  
        LPCTSTR szFormatFile);  

Unicode- och ANSI-namn:

  • bcp_writefmtA (ANSI)
  • bcp_writefmtW (Unicode)

Argument

hdbc
Är den masskopieringsaktiverade ODBC-anslutningshandtaget.

szFormatFile
Är sökvägen och filnamnet för användarfilen för att ta emot formatvärden för datafilen.

Returnerar

SUCCEED eller FAIL.

Anmärkningar

Formatfilen anger dataformatet för en datafil som skapats av masskopiering. Anrop till bcp_columns och bcp_colfmt definiera datafilens format. bcp_writefmt sparar den här definitionen i filen som refereras av szFormatFile. Mer information finns i bcp_init.

Mer information om strukturen för bcp- dataformatfiler finns i Importera och exportera massdata med hjälp av bcp-verktyget (SQL Server).

Om du vill läsa in en sparad formatfil använder du bcp_readfmt.

Not

Formatfilen som skapas av bcp_writefmt stöds endast av versioner av bcp- verktyg som distribueras med SQL Server version 7.0 och senare.

Exempel

// 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.  

Se även

masskopieringsfunktioner