我正在使用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 ..
_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的任何专家都知道为什么会发生这种情况..?
由于