bcp_writefmt
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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.