OdbcCommandBuilderとは? わかりやすく解説

OdbcCommandBuilder イベント


OdbcCommandBuilder クラス

データ ソースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。

名前空間: System.Data.Odbc
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 OdbcCommandBuilder
    Inherits DbCommandBuilder
Dim instance As OdbcCommandBuilder
public sealed class OdbcCommandBuilder : DbCommandBuilder
public ref class OdbcCommandBuilder sealed
 : public DbCommandBuilder
public final class OdbcCommandBuilder extends
 DbCommandBuilder
public final class OdbcCommandBuilder extends
 DbCommandBuilder
解説解説

OdbcDataAdapter では、データ ソースに関連付けられた DataSet への変更を調整するために必要な SQL ステートメントが、自動的に生成されることはありません。ただし、OdbcDataAdapter の SelectCommand プロパティを設定して、単一テーブルを更新する SQL ステートメントを自動的に生成する OdbcCommandBuilder オブジェクトを作成できます。続いて、OdbcCommandBuilder により、未設定の SQL ステートメントが追加で自動生成されます。

OdbcDataAdapter とそれに対応する OdbcCommandBuilder 間のリレーションシップは、常に 1 対 1 です。この対応を作成するには、OdbcCommandBuilder オブジェクトの OdbcDataAdapter プロパティを設定します。その結果、OdbcCommandBuilder はリスナとして登録され、DataSet を対象とする RowUpdating イベントの出力を生成します。

OdbcCommandBuilder では、INSERT、UPDATE、または DELETE ステートメントを生成するために、SelectCommand プロパティを使用して必要なメタデータ セットが取得されます。最初の更新の後など、メタデータが取得された後で SelectCommand の値を変更した場合は、続けて RefreshSchema メソッドを呼び出してメタデータを更新する必要があります。

メモメモ

SelectCommand プロパティに割り当てられた SELECT ステートメントで別名の列名が使用されている場合は、それを使用した INSERT、UPDATE、および DELETE ステートメントは正しくないか、失敗する可能性があります。基になる ODBC ドライバが別名の列名に対応する適切な元の列名を (SQLColAttribute の SQL_DESC_BASE_COLUMN_NAME 値を使用して) 提供できない場合、生成された INSERT、UPDATE、および DELETE ステートメントに別名が使用される可能性があります。たとえば、Microsoft ODBC Driver for Oracle は、元の列名として別名を返します。そのため、生成された INSERT、UPDATE、および DELETE ステートメントでエラーが発生します。

また、OdbcCommandBuilder では、SelectCommand が参照する Connection、CommandTimeout、および Transaction プロパティも使用されます。これらの 1 つ以上のプロパティを変更した場合、または SelectCommand プロパティの値を変更した場合は、ユーザーが RefreshSchema を呼び出す必要があります。この操作を行わないと、InsertCommand、UpdateCommand、および DeleteCommand プロパティが、変更前の値のままになります。

Dispose を呼び出すと、OdbcCommandBuilder と OdbcDataAdapter の関連付けが解除され、生成されたコマンドは使用されなくなります。

使用例使用例

OdbcCommand を OdbcDataAdapter および OdbcConnection と共に使用して、データ ソースから行を選択する例を次に示します。この例では、初期化済みの DataSet、接続文字列、クエリ文字列 (SQL SELECT ステートメント)、およびデータ ソース テーブル名の文字列が渡されます。この例では、続いて、OdbcCommandBuilder を作成します。

Public Function SelectOdbcSrvRows( _
    ByVal connectionString As String,
 ByVal queryString As String,
 _
    ByVal tableName As String)
 As DataSet

    Dim dataSet As DataSet = New
 DataSet

    Using connection As New OdbcConnection(connectionString)
        Dim adapter As New
 OdbcDataAdapter()
        adapter.SelectCommand = _
            New OdbcCommand(queryString, connection)
        Dim builder As OdbcCommandBuilder =
 _
            New OdbcCommandBuilder(adapter)

        connection.Open()

        adapter.Fill(dataSet, tableName)

        ' Code to modify data in DataSet here 

        ' Without the OdbcCommandBuilder this line would fail.
        adapter.Update(dataSet, tableName)
    End Using

    Return dataSet
End Function
public static DataSet SelectOdbcSrvRows(string
 connectionString,
    string queryString, string tableName)
{
    DataSet dataSet = new DataSet();
    using (OdbcConnection connection = new
 OdbcConnection(connectionString))
    {
        OdbcDataAdapter adapter = new OdbcDataAdapter();
        adapter.SelectCommand =
            new OdbcCommand(queryString, connection);
        OdbcCommandBuilder builder =
            new OdbcCommandBuilder(adapter);

        connection.Open();

        adapter.Fill(dataSet, tableName);

        //code to modify data in DataSet here

        //Without the OdbcCommandBuilder this line would fail
        adapter.Update(dataSet, tableName);
    }
    return dataSet;
}
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Data.Common.DbCommandBuilder
        System.Data.Odbc.OdbcCommandBuilder
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

OdbcCommandBuilder コンストラクタ ()


OdbcCommandBuilder コンストラクタ

OdbcCommandBuilder クラスの新しいインスタンスを初期化します。 コマンドの自動生成
オーバーロードの一覧オーバーロードの一覧

名前 説明
OdbcCommandBuilder () OdbcCommandBuilder クラスの新しいインスタンスを初期化します。
OdbcCommandBuilder (OdbcDataAdapter) 関連付ける OdbcDataAdapter オブジェクトを指定して、OdbcCommandBuilder クラスの新しいインスタンスを初期化します。
参照参照

関連項目

OdbcCommandBuilder クラス
OdbcCommandBuilder メンバ
System.Data.Odbc 名前空間

その他の技術情報

コマンドの自動生成
コマンドの自動生成

OdbcCommandBuilder コンストラクタ (OdbcDataAdapter)

関連付ける OdbcDataAdapter オブジェクトを指定して、OdbcCommandBuilder クラスの新しいインスタンスを初期化します。

名前空間: System.Data.Odbc
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    adapter As OdbcDataAdapter _
)
Dim adapter As OdbcDataAdapter

Dim instance As New OdbcCommandBuilder(adapter)
public OdbcCommandBuilder (
    OdbcDataAdapter adapter
)
public:
OdbcCommandBuilder (
    OdbcDataAdapter^ adapter
)
public OdbcCommandBuilder (
    OdbcDataAdapter adapter
)
public function OdbcCommandBuilder (
    adapter : OdbcDataAdapter
)

パラメータ

adapter

OdbcCommandBuilder に関連付ける OdbcDataAdapter オブジェクト。

解説解説

このプロパティで指定した OdbcDataAdapter が生成する RowUpdating イベントのリスナとして、OdbcCommandBuilder が自動的に登録されます。

新しい OdbcCommandBuilder インスタンスを作成すると、この OdbcDataAdapter に関連付けられていた既存の OdbcCommandBuilder が解放されます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

OdbcCommandBuilder プロパティ


パブリック プロパティパブリック プロパティ

( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ CatalogLocation  DbCommandBuilder クラスのインスタンスの CatalogLocation を設定または取得します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ CatalogSeparator  DbCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を設定または取得します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ ConflictOption  DbCommandBuilder で使用する ConflictOption を指定します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ Container  Component を格納している IContainer を取得します。 ( Component から継承されます。)
パブリック プロパティ DataAdapter この OdbcCommandBuilder オブジェクトが生成する SQL ステートメントの対象となる OdbcDataAdapter オブジェクトを取得または設定します。
パブリック プロパティ QuotePrefix  名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ QuoteSuffix  名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ SchemaSeparator  スキーマ ID とその他の ID の間の区切り記号に使用する文字を取得または設定します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ SetAllValues  UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。 ( DbCommandBuilder から継承されます。)
パブリック プロパティ Site  Component の ISite を取得または設定します。 ( Component から継承されます。)
プロテクト プロパティプロテクト プロパティ
参照参照

関連項目

OdbcCommandBuilder クラス
System.Data.Odbc 名前空間

その他の技術情報

コマンドの自動生成

OdbcCommandBuilder メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド DeriveParameters OdbcCommand で指定したストアド プロシージャからパラメータ情報を取得し、指定した OdbcCommand オブジェクトの Parameters コレクションにパラメータを格納します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetDeleteCommand オーバーロードされます。 データ ソースで削除処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetInsertCommand オーバーロードされます。 データ ソースで挿入処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド GetUpdateCommand オーバーロードされます。 データ ソースで更新処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド QuoteIdentifier オーバーロードされます。 オーバーライドされます。 カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。ID に埋め込まれている引用符は、正しくエスケープされます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド RefreshSchema  この DbCommandBuilder に関連付けられているコマンドを削除します。 ( DbCommandBuilder から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
パブリック メソッド UnquoteIdentifier オーバーロードされます。 オーバーライドされます。 引用符で囲まれた ID を指定し、正しい引用符で囲まれていない形式の ID を返します。ID に埋め込まれている引用符は、正しくエスケープ解除されます。
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

OdbcCommandBuilder クラス
System.Data.Odbc 名前空間

その他の技術情報

コマンドの自動生成

OdbcCommandBuilder メンバ

データ ソースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。

OdbcCommandBuilder データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド OdbcCommandBuilder オーバーロードされます。 OdbcCommandBuilder クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
( プロテクト プロパティ も参照)
  名前 説明
パブリック プロパティ CatalogLocation  DbCommandBuilder クラスのインスタンスの CatalogLocation を設定または取得します。(DbCommandBuilder から継承されます。)
パブリック プロパティ CatalogSeparator  DbCommandBuilder クラスのインスタンスのカタログの区切り記号として使用する文字列を設定または取得します。(DbCommandBuilder から継承されます。)
パブリック プロパティ ConflictOption  DbCommandBuilder で使用する ConflictOption を指定します。(DbCommandBuilder から継承されます。)
パブリック プロパティ Container  Component を格納している IContainer を取得します。(Component から継承されます。)
パブリック プロパティ DataAdapter この OdbcCommandBuilder オブジェクトが生成する SQL ステートメントの対象となる OdbcDataAdapter オブジェクトを取得または設定します。
パブリック プロパティ QuotePrefix  名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。(DbCommandBuilder から継承されます。)
パブリック プロパティ QuoteSuffix  名前に空白や予約済みトークンなどの文字を含むデータベース オブジェクト (テーブル、列など) を指定するための開始文字を取得または設定します。(DbCommandBuilder から継承されます。)
パブリック プロパティ SchemaSeparator  スキーマ ID とその他の ID の間の区切り記号に使用する文字を取得または設定します。(DbCommandBuilder から継承されます。)
パブリック プロパティ SetAllValues  UPDATE ステートメントにすべての列値が含まれるのか、変更になった列値だけが含まれるのかを示します。(DbCommandBuilder から継承されます。)
パブリック プロパティ Site  Component の ISite を取得または設定します。(Component から継承されます。)
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド DeriveParameters OdbcCommand で指定したストアド プロシージャからパラメータ情報を取得し、指定した OdbcCommand オブジェクトの Parameters コレクションにパラメータを格納します。
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetDeleteCommand オーバーロードされます。 データ ソースで削除処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetInsertCommand オーバーロードされます。 データ ソースで挿入処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド GetUpdateCommand オーバーロードされます。 データ ソースで更新処理を実行するための、自動生成された OdbcCommand オブジェクトを取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド QuoteIdentifier オーバーロードされます。 オーバーライドされます。 カタログの大文字小文字を正しく区別して引用符で囲まれていない ID を指定し、正しく引用符で囲まれた形式でその ID を返します。ID に埋め込まれている引用符は、正しくエスケープされます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド RefreshSchema  この DbCommandBuilder に関連付けられているコマンドを削除します。 (DbCommandBuilder から継承されます。)
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
パブリック メソッド UnquoteIdentifier オーバーロードされます。 オーバーライドされます。 引用符で囲まれた ID を指定し、正しい引用符で囲まれていない形式の ID を返します。ID に埋め込まれている引用符は、正しくエスケープ解除されます。
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
参照参照

関連項目

OdbcCommandBuilder クラス
System.Data.Odbc 名前空間

その他の技術情報

コマンドの自動生成



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「OdbcCommandBuilder」の関連用語

OdbcCommandBuilderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



OdbcCommandBuilderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS