bcp_writefmt
Crée un fichier de format qui contient une description du format du fichier de données de copie en bloc actif.
Syntaxe
RETCODE bcp_writefmt (
HDBC hdbc,
LPCTSTR szFormatFile);
Arguments
hdbc
Handle de connexion ODBC compatible avec la copie en bloc.szFormatFile
Chemin d'accès et nom de fichier du fichier utilisateur qui recevra les valeurs de format pour le fichier de données.
Valeurs retournées
SUCCEED ou FAIL.
Notes
Le fichier de format spécifie le format de données d'un fichier de données créé par le biais d'une copie en bloc. Les appels à bcp_columns et bcp_colfmt définissent le format du fichier de données. bcp_writefmt enregistre cette définition dans le fichier référencé par szFormatFile. Pour plus d'informations, consultez bcp_init.
Pour plus d'informations sur la structure des fichiers de format de données bcp, consultez Utilisation de fichiers de format.
Pour charger un fichier de format enregistré, utilisez bcp_readfmt.
Notes
Le fichier de format produit par bcp_writefmt est pris en charge uniquement par les versions de l'utilitaire bcp distribuées à l'aide de SQL Server version 7.0 ou ultérieure.
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_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.