Я использую объект Command ADO для выполнения простых команд.
Например,
_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);
}
Это прекрасно работает, но я хотел сделать это асинхронное выполнение для повышения производительности при работе с большим объемом данных … Поэтому я просто изменил параметр Execute на 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 знают, почему это происходит ..?
Спасибо
Задача ещё не решена.