ADO的命令对象adAsyncExecute时出错

时间:2014-07-07 21:09:25

标签: c++ oledb ado

我正在使用ADO的Command对象来执行简单的命令。

例如,

_CommandPtr CommPtr;
CommPtr.CreateInstance(__uuidof(Command));
CommPtr->ActiveConnection = MY_CONNECTION;
CommPtr->CommandType = adCmdText;
CommPtr->CommandText = L"insert into MY_TABLE values MY_VALUE";

for (int i=0; i<10000; i++) {
    CommPtr->Execute(NULL, NULL, adExecuteNoRecords);
}

这很好用,但是我想在处理大量数据时将其作为异步执行来提高性能......所以我只是简单地将执行选项更改为adAsyncExecute ..

Documentation Link

_CommandPtr CommPtr;
CommPtr.CreateInstance(__uuidof(Command));
CommPtr->ActiveConnection = MY_CONNECTION;
CommPtr->CommandType = adCmdText;
CommPtr->CommandText = L"insert into MY_TABLE values MY_VALUE";

for (int i=0; i<10000; i++) {
    CommPtr->Execute(NULL, NULL, adAsyncExecute);
}


由于某种原因,这给了我一个内存错误。

First-change exception
Microsoft C++ exception:
_com_error at memory location 0x0028FA24


ADO的任何专家都知道为什么会发生这种情况..?

由于

0 个答案:

没有答案