bcp_readfmt
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada 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);
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 que analice un archivo de formato y realice 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:
La versión 4.2 o posterior de la utilidad bcp debe haber generado el archivo de formato.
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.