bcp_readfmt
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Lee una definición de formato de archivo de datos del archivo de formato especificado.
Sintaxis
RETCODE bcp_readfmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Nombres Unicode y ANSI:
- bcp_readfmtA (ANSI)
- bcp_readfmtW (Unicode)
Argumentos
hdbc
Es el identificador de la conexión ODBC habilitada para la copia masiva.
szFormatFile
Es la ruta de acceso y nombre del archivo que contiene los valores de formato para el archivo de datos.
Devoluciones
SUCCEED o FAIL.
Comentarios
Después de bcp_readfmt lee los valores de formato, realiza las llamadas adecuadas a bcp_columns y bcp_colfmt. No es necesario analizar un archivo de formato y realizar estas llamadas.
Para conservar un archivo de formato, llame a bcp_writefmt. Las llamadas a bcp_readfmt pueden hacer referencia a los formatos guardados. Para obtener más información, vea bcp_init.
Como alternativa, la utilidad de copia masiva (bcp) puede guardar los formatos de datos definidos por el usuario en archivos a los que bcp_readfmtpuede hacer referencia. Para obtener más información sobre la utilidad bcp y la estructura de los archivos de formato de datos bcp, vea Importación y exportación masiva de datos (SQL Server).
El valor BCPDELAYREADFMT del parámetro eOption de bcp_control modifica el comportamiento de bcp_readfmt.
Nota:
El archivo de formato debe ser generado por la versión 4.2 o posterior de la utilidad de bcp.
Ejemplo
// 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.