Partager via


bcp_readfmt

Lit la définition du format du fichier de données à partir du fichier de format spécifié.

Syntaxe

  
RETCODE bcp_readfmt (  
HDBC   
hdbc  
,  
LPCTSTR   
szFormatFile  
);  
  

Les arguments

hdbc
Handle de connexion ODBC compatible avec la copie en bloc.

szFormatFile
Chemin d'accès et nom du fichier contenant les valeurs de format du fichier de données.

Retours

SUCCEED ou FAIL.

Remarques

Après bcp_readfmt avoir lu les valeurs de format, il effectue les appels appropriés à bcp_columns et bcp_colfmt. Vous n'avez nul besoin d'analyser un fichier de format et d'exécuter ces appels.

Pour rendre un fichier de format persistant, appelez bcp_writefmt. Les appels à référencer bcp_readfmt les formats enregistrés. Pour plus d'informations, consultez bcp_init.

Sinon, l’utilitaire de copie en bloc (bcp) peut enregistrer les formats de données définis par l’utilisateur dans les fichiers qui peuvent être référencés par bcp_readfmt. Pour plus d’informations sur l’utilitaire bcp et la structure des fichiers de format de données bcp, consultez Importation et exportation en bloc de données (SQL Server).

La BCPDELAYREADFMT valeur du paramètre eOption de bcp_control modifie le comportement de bcp_readfmt.

Remarque

Le fichier de format a dû être produit par la version 4.2 ou version ultérieure de l'utilitaire bcp .

Exemple :

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

Voir aussi

Fonctions de copie en bloc