Функция 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 жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру