Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Läser en datafilformatdefinition från den angivna formatfilen.
Syntax
RETCODE bcp_readfmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Unicode- och ANSI-namn:
- bcp_readfmtA (ANSI)
- bcp_readfmtW (Unicode)
Argument
hdbc
Är den masskopieringsaktiverade ODBC-anslutningshandtaget.
szFormatFile
Är sökvägen och filnamnet för filen som innehåller formatvärdena för datafilen.
Returnerar
SUCCEED eller FAIL.
Anmärkningar
När bcp_readfmt har läst formatvärdena anropas lämpliga anrop till bcp_columns och bcp_colfmt. Du behöver inte parsa en formatfil och göra dessa anrop.
Om du vill spara en formatfil anropar du bcp_writefmt. Anrop till bcp_readfmt kan referera till sparade format. Mer information finns i bcp_init.
Alternativt kan masskopieringsverktyget (bcp) spara användardefinierade dataformat i filer som kan refereras till av bcp_readfmt. Mer information om verktyget bcp och strukturen för bcp-filer dataformat finns i Massimport och export av data (SQL Server).
Värdet BCPDELAYREADFMT för parametern eOption för bcp_control ändrar beteendet för bcp_readfmt.
Not
Formatfilen måste skapas av version 4.2 eller senare av verktyget bcp.
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_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.