我正在使用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类。