Функция 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.
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по