我刚刚通过将表和查询替换为 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 代码中回答。