ヘッダーをスキップ

Oracle® Data Provider for .NET開発者ガイド
リリース9.2.0.4

部品番号 B13807-01
Go To Table Of Contents
目次
Go To Index
索引

Go to previous page Go to beginning of chapter Go to next page

Oracle.DataAccess.Clientネームスペース、3/30


OracleCommandBuilderクラス

OracleCommandBuilderオブジェクトは、データベースが更新された際に、OracleDataAdapterに対して自動SQL生成を実行します。

クラスの継承

Object

  MarshalByRefObject

    Component

      OracleCommandBuilder

宣言
// C#
public sealed class OracleCommandBuilder : Component
スレッド・セーフティ

インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。

備考

OracleCommandBuilderは、OracleDataAdapterSelectCommandプロパティが設定されると、1つの表を更新するSQL文を自動的に生成します。DataSetに複数の表が含まれる場合は、例外がスローされます。DataAdapterプロパティが設定されると、RowUpdatingのイベントのリスナーとして、OracleCommandBuilder自体が登録されます。一度に相互に関連付けることができるOracleDataAdapterオブジェクトとOracleCommandBuilderオブジェクトは、それぞれ1つずつです。

INSERT文、UPDATE文またはDELETE文を生成するために、OracleCommandBuilderDataSet内でExtendedPropertiesを使用して必要なメタデータ・セットを取得します。最初の更新の後など、メタデータが取得された後でSelectCommandが変更された場合は、RefreshSchemaメソッドをコールしてメタデータを更新する必要があります。

最初に、OracleCommandBuilderDataSetExtendedPropertiesからメタデータを検索します。メタデータが使用できない場合、OracleCommandBuilderOracleDataAdapterSelectCommandプロパティを使用してメタデータを取得します。

この項のOracleCommandBuilderの例は、次のように定義されたEMPINFO表を基にしています。


CREATE TABLE empInfo (
 empno NUMBER(4) PRIMARY KEY,
 empName VARCHAR2(20) NOT NULL,
 hiredate DATE,
 salary NUMBER(7,2),
 jobDescription Clob,
 byteCodes BLOB
);

EMPINFO表には、次の値が含まれています。


EMPNO    EMPNAME    HIREDATE    SALARY     JOBDESCRIPTION  BYTECODES
                                                          (Hex Values)
=====    =======    ========    ======     ==============  ============

    1    KING       01-MAY-81   12345.67   SOFTWARE ENGR   {0x12, 0x34}
    2    SCOTT      01-SEP-75   34567.89   MANAGER         {0x56, 0x78}
    3    BLAKE      01-OCT-90   9999.12    TRANSPORT       {0x23, 0x45}
    4    SMITH      NULL        NULL       NULL             NULL

次の例では、OracleCommandBuilderオブジェクトを使用して、OracleDataAdapter.Update()がコールされたときにOracleDataAdapterオブジェクトに対するUpdateCommandを作成しています。


// C#
public static void BuilderUpdate(string connStr)
{
  string cmdStr = "SELECT EMPNO, EMPNAME, JOBDESCRIPTION FROM EMPINFO";

  //create the adapter with the selectCommand txt and the
  //connection string
  OracleDataAdapter adapter = new OracleDataAdapter(cmdStr, connStr);

  //get the connection from the adapter
  OracleConnection connection = adapter.SelectCommand.Connection;

  //create the builder for the adapter to automatically generate
  //the Command when needed
  OracleCommandBuilder builder = new OracleCommandBuilder(adapter);

  //Create and fill the DataSet using the EMPINFO
  DataSet dataset = new DataSet();
  adapter.Fill(dataset, "EMPINFO");

  //Get the EMPINFO table from the dataset
  DataTable table = dataset.Tables["EMPINFO"];

  //Get the first row from the EMPINFO table
  DataRow row0 = table.Rows[0];

  //update the job description in the first row
  row0["JOBDESCRIPTION"] = "MANAGER";

  //Now update the EMPINFO using the adapter, the job description
  //of 'KING' is changed to 'MANAGER'
  //The OracleCommandBuilder will create the UpdateCommand for the
  //adapter to update the EMPINFO table
  adapter.Update(dataset, "EMPINFO");

}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

関連項目:

OracleCommandBuilderのメンバー

OracleCommandBuilderのメンバーを次の表に示します。

OracleCommandBuilderのコンストラクタ

OracleCommandBuilderのコンストラクタを表4-8に示します。

表4-8 OracleCommandBuilderのコンストラクタ
コンストラクタ 説明

OracleCommandBuilderのコンストラクタ

OracleCommandBuilderクラスの新規インスタンスをインスタンス化します(オーバーロード)。

OracleCommandBuilderのstaticメソッド

OracleCommandBuilderのstaticメソッドを表4-9に示します。

表4-9 OracleCommandBuilderのstaticメソッド 
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

OracleCommandBuilderのプロパティ

OracleCommandBuilderのプロパティを表4-10に示します。

表4-10 OracleCommandBuilderのプロパティ 
名前 説明

Container

Componentから継承されます。

DataAdapter

SQL文が生成されるOracleDataAdapterを示します。

CaseSensitive

SQL文を生成する際に、Oracleのオブジェクト名を二重引用符で囲むかどうかを示します。

Site

Componentから継承されます。

OracleCommandBuilderのpublicメソッド

OracleCommandBuilderのpublicメソッドを表4-11に示します。

表4-11 OracleCommandBuilderのpublicメソッド 
publicメソッド 説明

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

Componentから継承されます。

Equals

Objectから継承されます(オーバーロード)。

GetDeleteCommand

データベースでの削除をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

GetHashCode

Objectから継承されます。

GetInsertCommand

データベースでの挿入をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

GetUpdateCommand

データベースでの更新をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

RefreshSchema

INSERT文、UPDATE文またはDELETE文の生成に使用するデータベース・スキーマ情報をリフレッシュします。

ToString

Objectから継承されます。

OracleCommandBuilderのイベント

OracleCommandBuilderのイベントを表4-12に示します。

表4-12 OracleCommandBuilderのイベント
イベント名 説明

Disposed

Componentから継承されます。

OracleCommandBuilderのイベント・デリゲート

OracleCommandBuilderのイベント・デリゲートを表4-13に示します。

表4-13 OracleCommandBuilderのイベント・デリゲート  
イベント・デリゲート名 説明

EventHandler

Componentから継承されます。

関連項目:

OracleCommandBuilderのコンストラクタ

OracleCommandBuilderのコンストラクタは、OracleCommandBuilderクラスの新規インスタンスを作成します。

オーバーロード一覧:

OracleCommandBuilder()

このコンストラクタは、OracleCommandBuilderクラスのインスタンスを作成します。

宣言
// C#
public OracleCommandBuilder();
備考

デフォルトのコンストラクタです。

関連項目:

OracleCommandBuilder(OracleDataAdapter)

このコンストラクタは、OracleCommandBuilderクラスのインスタンスを作成し、DataAdapterプロパティを指定されたOracleDataAdapterオブジェクトに設定します。

宣言
// C#
public OracleCommandBuilder(OracleDataAdapter da);
パラメータ

OracleCommandBuilderのstaticメソッド

OracleCommandBuilderのstaticメソッドを表4-14に示します。

表4-14 OracleCommandBuilderのstaticメソッド 
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

関連項目:

OracleCommandBuilderのプロパティ

OracleCommandBuilderのプロパティを表4-15に示します。

表4-15 OracleCommandBuilderのプロパティ 
名前 説明

Container

Componentから継承されます。

DataAdapter

SQL文が生成されるOracleDataAdapterを示します。

CaseSensitive

SQL文を生成する際に、Oracleのオブジェクト名を二重引用符で囲むかどうかを示します。

Site

Componentから継承されます。

関連項目:

DataAdapter

このプロパティは、SQL文が生成されるOracleDataAdapterを示します。

宣言
// C#
OracleDataAdapter DataAdapter{get; set;}
プロパティ値

OracleDataAdapter

備考

デフォルトはnullです。

関連項目:

CaseSensitive

このプロパティは、SQL文を生成する際に、Oracleのオブジェクト名(表または列など)を二重引用符で囲むかどうかを示します。

宣言
// C#
bool CaseSensitive {get; set;}
プロパティ値

二重引用符を使用するかどうかを示すbool

備考

デフォルトはfalseです。

関連項目:

OracleCommandBuilderのpublicメソッド

OracleCommandBuilderのpublicメソッドを表4-16に示します。

表4-16 OracleCommandBuilderのpublicメソッド 
publicメソッド 説明

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

Componentから継承されます。

Equals

Objectから継承されます(オーバーロード)。

GetDeleteCommand

データベースでの削除をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

GetHashCode

Objectから継承されます。

GetInsertCommand

データベースでの挿入をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

GetUpdateCommand

データベースでの更新をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

RefreshSchema

INSERT文、UPDATE文またはDELETE文の生成に使用するデータベース・スキーマ情報をリフレッシュします。

ToString

Objectから継承されます。

関連項目:

GetDeleteCommand

このメソッドは、アプリケーションがOracleDataAdapterUpdate()をコールした際に、データベースでの削除をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

宣言
// C#
public OracleCommand GetDeleteCommand();
戻り値

OracleCommand

例外

ObjectDisposedException: OracleCommandBuilderオブジェクトはすでに破棄されています。

InvalidOperationException: SelectCommandプロパティまたはDataAdapterプロパティのいずれかがnullであるか、またはOracleDataAdapterSelectCommandプロパティから主キーを取得することができません。

関連項目:

GetInsertCommand

このメソッドは、アプリケーションがOracleDataAdapterUpdate()をコールした際に、データベースでの挿入をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

宣言
// C#
public OracleCommand GetInsertCommand();
戻り値

OracleCommand

例外

ObjectDisposedException: OracleCommandBuilderオブジェクトはすでに破棄されています。

InvalidOperationException: SelectCommandプロパティまたはDataAdapterプロパティのいずれかがnullであるか、またはOracleDataAdapterSelectCommandプロパティから主キーを取得することができません。

関連項目:

GetUpdateCommand

このメソッドは、アプリケーションがOracleDataAdapterUpdate()をコールした際に、データベースでの更新をSQL文(CommandText)で実行する、自動生成されたOracleCommandオブジェクトを取得します。

宣言
// C#
public OracleCommand GetUpdateCommand();
戻り値

OracleCommand

例外

ObjectDisposedException: OracleCommandBuilderオブジェクトはすでに破棄されています。

InvalidOperationException: SelectCommandプロパティまたはDataAdapterプロパティのいずれかがnullであるか、またはOracleDataAdapterSelectCommandプロパティから主キーを取得することができません。

関連項目:

RefreshSchema

このメソッドは、INSERT文、UPDATE文またはDELETE文の生成に使用するデータベース・スキーマ情報をリフレッシュします。

宣言
// C#
public void RefreshSchema();
備考

OracleDataAdapterSelectCommandの値を変更すると、必ずアプリケーションによりRefreshSchemaがコールされます。

関連項目:

OracleCommandBuilderのイベント

OracleCommandBuilderのイベントを表4-17に示します。

表4-17 OracleCommandBuilderのイベント
イベント名 説明

Disposed

Componentから継承されます。

関連項目:

OracleCommandBuilderのイベント・デリゲート

OracleCommandBuilderのイベント・デリゲートを表4-18に示します。

表4-18 OracleCommandBuilderのイベント・デリゲート  
イベント・デリゲート名 説明

EventHandler

Componentから継承されます。

関連項目:


Go to previous page Go to beginning of chapter Go to next page
Oracle
Copyright © 2002, 2003 Oracle Corporation.

All Rights Reserved.
Go To Table Of Contents
目次
Go To Index
索引