OracleCommandBuilder クラス
メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
データベースに関連付けられた DataSet への変更を調整するための単一テーブル コマンドを自動的に生成します。このクラスは継承できません。
この型のすべてのメンバの一覧については、OracleCommandBuilder メンバ を参照してください。
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.OracleClient.OracleCommandBuilder
NotInheritable Public Class OracleCommandBuilder
Inherits Component
[C#]
public sealed class OracleCommandBuilder : Component
[C++]
public __gc __sealed class OracleCommandBuilder : public Component
[JScript]
public class OracleCommandBuilder extends Component
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
OracleDataAdapter では、データベースに関連付けられた DataSet への変更を調整する SQL ステートメントは、自動的に生成されません。ただし、 OracleDataAdapter の SelectCommand プロパティを設定して、単一テーブルを更新する SQL ステートメントを自動的に生成する OracleCommandBuilder オブジェクトを作成できます。続いて、 OracleCommandBuilder により、未設定の SQL ステートメントが追加で自動生成されます。
OracleDataAdapter とそれに対応する OracleCommandBuilder 間のリレーションシップは、常に 1 対 1 です。この対応を作成するには、 OracleCommandBuilder オブジェクトの OracleDataAdapter プロパティを設定します。その結果、 OracleCommandBuilder はリスナとして登録され、 DataSet を対象とする RowUpdating イベントの出力を生成します。
OracleCommandBuilder では、INSERT、UPDATE、または DELETE ステートメントを生成するために、 SelectCommand プロパティを使用して必要なメタデータ セットが取得されます。
また、 OracleCommandBuilder では、 SelectCommand が参照する Connection プロパティと Transaction プロパティも使用されます。
Dispose を呼び出すと、 OracleCommandBuilder と OracleDataAdapter の関連付けが解除され、生成されたコマンドは使用されなくなります。
使用例
[Visual Basic, C#, C++] OracleCommand を OracleDataAdapter および OracleConnection と共に使用して、データベースから行を選択する例を次に示します。この例のコードには、初期化済みの DataSet 、接続文字列、クエリ文字列 (SQL SELECT ステートメント)、およびデータベース テーブル名の文字列が渡されます。この例では、続いて、 OracleCommandBuilder を作成します。
Public Shared Function SelectOracleSrvRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet
Dim myConn As New OracleConnection(myConnection)
Dim myDataAdapter As New OracleDataAdapter()
myDataAdapter.SelectCommand = New OracleCommand(mySelectQuery, myConn)
Dim cb As OracleCommandBuilder = New OracleCommandBuilder(myDataAdapter)
myConn.Open()
Dim ds As DataSet = New DataSet
myDataAdapter.Fill(ds, myTableName)
' Code to modify data in DataSet here
' Without the OracleCommandBuilder this line would fail.
myDataAdapter.Update(ds, myTableName)
myConn.Close()
End Function 'SelectOracleSrvRows
[C#]
public static DataSet SelectOracleSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
OracleConnection myConn = new OracleConnection(myConnection);
OracleDataAdapter myDataAdapter = new OracleDataAdapter();
myDataAdapter.SelectCommand = new OracleCommand(mySelectQuery, myConn);
OracleCommandBuilder cb = new OracleCommandBuilder(myDataAdapter);
myConn.Open();
DataSet ds = new DataSet();
myDataAdapter.Fill(ds, myTableName);
//code to modify data in DataSet here
//Without the OracleCommandBuilder this line would fail
myDataAdapter.Update(ds, myTableName);
myConn.Close();
return ds;
}
[C++]
public:
static DataSet* SelectOracleSrvRows(String* myConnection, String* mySelectQuery, String* myTableName)
{
OracleConnection* myConn = new OracleConnection(myConnection);
OracleDataAdapter* myDataAdapter = new OracleDataAdapter();
myDataAdapter->SelectCommand = new OracleCommand(mySelectQuery, myConn);
OracleCommandBuilder* cb = new OracleCommandBuilder(myDataAdapter);
myConn->Open();
DataSet* ds = new DataSet();
myDataAdapter->Fill(ds, myTableName);
//code to modify data in DataSet here
//Without the OracleCommandBuilder this line would fail
myDataAdapter->Update(ds, myTableName);
myConn->Close();
return ds;
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Data.OracleClient
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Data.Oracleclient (System.Data.Oracleclient.dll 内)