使用ADO / OLEDB进行BULK插入/加载

时间:2014-06-30 14:38:46

标签: c++ sql tsql ado

我正在使用ADO访问我的cpp代码中的OLE DB服务器..

int main(int argc, char** argv) {
    try {
        _ConnectionPtr ConnPtr;
        ConnPtr.CreateInstance("ADODB.Connection");
        ConnPtr.Open("Provider=ASEOLEDB; Data Source=MYSERVER; User ID=MYID; Password=MYPW");


        _RecordsetPtr RecPtr;
        RecPtr.CreateInstance("ADODB.Recordset");


        ReccPtr = Connptr.execute("BULK INSERT ...");
        // .................
        // ...bulk insert...
        // .................


        ConnPtr->Close();
    }
    catch (_com_error &e) {

    }
}

我无法在线找到任何资源如何实现批量插入部分..我已经阅读了有关使用Java的批量插入的帖子,但我无法弄清楚如何完成此操作在C ++ / ADO ..

http://venzi.wordpress.com/2012/03/31/loading-data-fast-regular-insert-vs-bulk-insert/

有没有人对此主题有任何建议/资源?

1 个答案:

答案 0 :(得分:0)

BULK INSERT T-SQL语句从文件中导入数据。该文件需要本地存储在SQL Server框中,或者可以通过UNC路径访问。请参阅http://msdn.microsoft.com/en-us/library/ms188365.aspx

要直接从本机代码批量插入,您需要使用IRowsetFasLoad COM接口或ODBC_BCP函数调用。经典ADO没有批量插入方法。如果托管代码是一个选项,则可以使用SqlClient SqlBulkCopy类。