Bde.DBTables.TDBError
Delphi
TDBError = class
C++
class PASCALIMPLEMENTATION TDBError : public System::TObject
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | Bde.DBTables.pas Bde.DBTables.hpp |
Bde.DBTables | Bde.DBTables |
説明
TDBError は,EDBEngineError 例外クラス用のボーランドデータベースBde.DBTables.TDBDataSetエンジンのエラーを表します。
TDBError オブジェクトは,1 つのデータベースエラーに関する情報のコンテナです。1 つまたは複数の TDBError オブジェクトが Errors プロパティ(EDBEngineError)に格納されます。
EDBEngineError 例外は,ボーランドデータベースBde.DBTables.TDBDataSetエンジンのエラーが発生したとき,または BDE を介してアクセスするデータベースバックエンドがデータベース操作の実行でエラー状態を生成したときに生成されます。エラー状態にかかわる各エラーについての情報(エラーコードやエラーメッセージなど)は,BDE によって EDBEngineError オブジェクトに渡されます。BDE によってアクセスされるデータベースシステム(InterBase,Oracle,Sybase など)のレベルでエラーが発生した場合は,エラー情報は BDE を介してアプリケーションの例外オブジェクトに渡されます。EDBEngineError はデータベースエンジンエラーのスタックを読み出し,各エラーごとに独立した TDBError オブジェクトを作成します。TDBError オブジェクトは EDBEngineError の Errors プロパティに含まれています。
エラー状態の原因が BDE を介してアクセスされるデータベースシステムである場合は,通常,Errors に 2 つの TDBError オブジェクトがあります。1 つめは BDE バージョンのエラーで,2 つめは同じエラーのデータベースシステムバージョンです。どちらの場合でも,Category,ErrorCode,および SubCode プロパティには同じ値,つまりエラー状態の種類ごとの BDE エラーコードが入ります。BDE バージョンのエラーの TDBError オブジェクトでは,NativeCode プロパティは空で,Message プロパティのテキストには発生したエラーの BDE エラーメッセージが入ります。データベースシステムバージョンのエラーの TDBError オブジェクトでは,NativeCode プロパティにはデータベースシステム固有のエラーコードが入り,Message プロパティには BDE でなくデータベースシステムによって提供されたテキストが入ります。
たとえば,InterBase CHECK 制約の違反が起こった場合(BDE ではなく InterBase に起因するエラー状態),BDE によって提供されるエラーメッセージは汎用の"General SQL error"ですが,InterBase によって提供されるエラーメッセージは,"Operation violates CHECK constraint INTEG_30 on view or table EMPLOYEE."のように,より詳しいものになります。
TDBError オブジェクトに BDE タイプのエラーだけが含まれるようにすることもできます。これは通常 BDE がデータベースバックエンドであり,外部データベースが使用されないローカルテーブル(dBASE,Paradox,および FoxPro)の使用にのみ適用できます。
BDE エラーのカテゴリおよびサブコードは,bde.int(Delphi)または bde.hpp(C++)に定義されています。BDE 以外のデータベースシステムによって提供されるエラー情報の詳細は,それぞれのデータベースシステムのベンダーが提供するマニュアルを参照してください。