Bde.DBTables.TDBError

提供: RAD Studio API Documentation
移動先: 案内検索

System.TObjectTDBError

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 オブジェクトは EDBEngineErrorErrors プロパティに含まれています。

エラー状態の原因が BDE を介してアクセスされるデータベースシステムである場合は,通常,Errors に 2 つの TDBError オブジェクトがあります。1 つめは BDE バージョンのエラーで,2 つめは同じエラーのデータベースシステムバージョンです。どちらの場合でも,CategoryErrorCode,および 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 以外のデータベースシステムによって提供されるエラー情報の詳細は,それぞれのデータベースシステムのベンダーが提供するマニュアルを参照してください。

関連項目