BDEとFireDACのエラーコードの対応
概要
EDBEngineError は BDE 固有の例外クラスで、FireDAC には、それに相当する EFDDBEngineException クラスがあります。
BDE 例外を処理する際は、ErrorCode プロパティを使用して、エラーの種類を取得していますが、実際にはFireDACとBDEのエラーコードは、1対1には対応しておらず、一部のBDEのエラーコードについては、FireDACへマッピングすることはできません。
以下の表は、FireDACとBDEのエラーコードに関するマッピングの一例です。
BDEエラーコード | BDEエラーコードの定義名 | FireDACエラーのKind |
---|---|---|
8708 | DBIERR_RECDELETED | FDCode=er_FD_DAptRecordIsDeleted |
8709 | DBIERR_NOCURRREC | 未対応 |
9729 | DBIERR_KEYVIOL | Kind=ekUKViolated / ekFKViolate |
9996 | DBIERR_INVALIDMODIFYREQUEST | Kind=ekObjNotExist |
10009 | DBIERR_NAMENOTUNIQUE | 未対応 |
10036 | DBIERR_INVALIDUSRPASS | Kind=ekUserPwdInvalid |
10255 | DBIERR_DEADLOCK | Kind=ekRecordLocked |
10259 | DBIERR_OPTRECLOCKRECDEL | FDCode=er_FD_DAptRecordIsDeleted |
10260 | DBIERR_OPTRECLOCKFAILED | Kind=ekRecordLocked |
関連情報
- EFDDBEngineExceptionのKindプロパティで、DBMS に非依存のエラーの種類を取得できます。
- 移行に関するその他のヒント(FireDAC)
- FireDAC.Stan.Error.EFDException.FDCode