Поделиться через


Функция bcp_writefmt

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Создает файл форматирования, содержащий описание формата текущего файла данных массового копирования.

Синтаксис

  
RETCODE bcp_writefmt (  
        HDBC hdbc,  
        LPCTSTR szFormatFile);  

Аргументы

hdbc
Дескриптор соединения ODBC с поддержкой массового копирования.

szFormatFile
Путь и имя пользовательского файла, принимающего значения форматов файла данных.

Возвраты

SUCCEED или FAIL.

Замечания

Файл форматирования определяет формат данных, содержащихся в файле данных, создаваемом при массовом копировании. Вызовы функций bcp_columns и bcp_colfmt определяют формат файла данных. Функцияbcp_writefmt сохраняет это определение в файле, на который ссылается аргумент szFormatFile. Дополнительные сведения см. в разделе bcp_init.

Дополнительные сведения о структуре файлов формата данных bcp см. в разделе "Импорт и экспорт массовых данных с помощью служебной программы bcp (SQL Server)".

Для загрузки сохраненного файла форматирования используется функция bcp_readfmt.

Примечание.

Файл формата, созданный bcp_writefmt , поддерживается только версиями служебной программы bcp , распределенной с SQL Server версии 7.0 и более поздними версиями.

Пример

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

См. также

Функции массового копирования