我正在使用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/)

有人对此主题有建议/资源吗?

最佳答案

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

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

10-08 11:50