テーブルとクエリを ADO コンポーネントの同等のものに置き換えることで、BDE の使用から ADO に切り替えました。
私は常に次のように try...catch 内でクエリを実行しています。
//Fdm is Data Module
//TEndOfDay is TTable
//QEndOfDay is TQuery
Screen->Cursor = crSQLWait;
Fdm->QEndOfDay->SQL->Add("SELECT * FROM TEndOfDay");
try{
Fdm->QEndOfDay->ExecSQL();
Fdm->QEndOfDay->Open();
Screen->Cursor = crDefault;
}
catch (EDBEngineError &DBEngineError){
strError = DBEngineError.Message;
Screen->Cursor = crDefault;
}
catch (EDatabaseError &DatabaseError){
strError = DatabaseError.Message;
Screen->Cursor = crDefault;
}
catch(...){
strError = "Error";
Screen->Cursor = crDefault;
}
ADO に切り替えたので、これらの例外 (DBEngineError、DatabaseError) は適用されますか?
投稿を編集して、Delphi 関係者を含めるようにしました。彼らは迅速に対応してくれます。答えが Delphi コードであるかどうかは関係ありません。