OracleDataAdapter クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注意事項
OracleDataAdapter has been deprecated. http://go.microsoft.com/fwlink/?LinkID=144260
データ コマンドのセットと、DataSet の格納およびデータベースの更新に使用されるデータベースへの接続を表します。 このクラスは継承できません。
public ref class OracleDataAdapter sealed : System::Data::Common::DbDataAdapter, System::Data::IDbDataAdapter
public ref class OracleDataAdapter sealed : System::Data::Common::DbDataAdapter, ICloneable
public sealed class OracleDataAdapter : System.Data.Common.DbDataAdapter, System.Data.IDbDataAdapter
public sealed class OracleDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
[System.Obsolete("OracleDataAdapter has been deprecated. http://go.microsoft.com/fwlink/?LinkID=144260", false)]
public sealed class OracleDataAdapter : System.Data.Common.DbDataAdapter, ICloneable
type OracleDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
type OracleDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
[<System.Obsolete("OracleDataAdapter has been deprecated. http://go.microsoft.com/fwlink/?LinkID=144260", false)>]
type OracleDataAdapter = class
inherit DbDataAdapter
interface IDbDataAdapter
interface IDataAdapter
interface ICloneable
Public NotInheritable Class OracleDataAdapter
Inherits DbDataAdapter
Implements IDbDataAdapter
Public NotInheritable Class OracleDataAdapter
Inherits DbDataAdapter
Implements ICloneable
- 継承
- 属性
- 実装
注釈
この型は非推奨であり、今後のバージョンの.NET Frameworkで削除される予定です。 詳細については、「Oracle と ADO.NET」を参照してください。
は OracleDataAdapter 、データを取得および保存するための DataSet とデータベースの間のブリッジとして機能します。 はOracleDataAdapter、 を使用してFillデータベースDataSetUpdateから にデータを読み込み、 でDataSet行われた変更をデータ ソースに送信することで、このブリッジを提供します。
が OracleDataAdapter を DataSet塗りつぶすと、返されたデータに必要なテーブルと列がまだ存在しない場合は作成されます。 ただし、 プロパティが に設定AddWithKeyされていない限りMissingSchemaAction、暗黙的に作成されたスキーマには主キー情報は含まれません。 また、 を使用してFillSchemaデータをOracleDataAdapter入力する前にDataSet、主キー情報を含む のスキーマを作成することもできます。 詳細については、「 DataSet への既存の制約の追加」を参照してください。
注意
既定では、 にFillインポートされたDataTable数値フィールドはオブジェクトにOracleNumberマップされます。 の有効桁数の制限に対して大きすぎるか、精度が高すぎる非整数の数値をインポートすることで、 をオーバーフロー OracleNumberし、Oracle 例外を OracleNumberスローできます。 詳細については、 の OracleNumber 説明を参照してください。
OracleDataAdapterには、データのSelectCommandUpdateCommandInsertCommandDeleteCommandTableMappings
読み込みと更新を容易にする、および の各プロパティも含まれています。
.NET Framework Data Provider for Oracle では、バッチ処理された SQL ステートメントはサポートされていません。 ただし、複数 REF CURSOR
の出力パラメーターを使用して DataSet を塗りつぶすことができます。各パラメーターは独自 DataTableの です。 パラメーターを定義し、出力パラメーターとしてマークし、データ型であることを REF CURSOR
示す必要があります。 ストアド プロシージャによって返されるパラメーターを使用して が Update 入力されている場合 OracleDataAdapter は、 メソッドを使用 REF CURSOR
できないことに注意してください。これは、SQL ステートメントの実行時にテーブル名と列名を決定するために必要な情報が Oracle によって提供されないためです。 次の C# の例では、このストアド プロシージャが作成されていることを前提としています。
次の Oracle パッケージを Oracle サーバー上に作成します。
CREATE OR REPLACE PACKAGE CURSPKG AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR OUT T_CURSOR);
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR);
END CURSPKG;
/
Oracle サーバーで、次の Oracle パッケージ本体を作成します。
CREATE OR REPLACE PACKAGE BODY CURSPKG AS
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR OUT T_CURSOR)
IS
V_CURSOR T_CURSOR;
BEGIN
IF N_EMPNO <> 0 THEN
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.EMPNO = N_EMPNO;
ELSE
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
END IF;
IO_CURSOR := V_CURSOR;
END OPEN_ONE_CURSOR;
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR)
IS
V_CURSOR1 T_CURSOR;
V_CURSOR2 T_CURSOR;
BEGIN
OPEN V_CURSOR1 FOR SELECT * FROM EMP;
OPEN V_CURSOR2 FOR SELECT * FROM DEPT;
EMPCURSOR := V_CURSOR1;
DEPTCURSOR := V_CURSOR2;
END OPEN_TWO_CURSORS;
END CURSPKG;
/
次の C# の例では、ストアド プロシージャを使用してテーブルと列の情報を取得する方法を示します。
// GetConnectionString() returns a connection string for
// the data source.
string connString = GetConnectionString();
DataSet ds = new DataSet();
OracleConnection conn = new OracleConnection(connString);
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "CURSPKG.OPEN_TWO_CURSORS";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("EMPCURSOR", OracleType.Cursor).Direction =
ParameterDirection.Output;
cmd.Parameters.Add("DEPTCURSOR", OracleType.Cursor).Direction =
ParameterDirection.Output;
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.TableMappings.Add("Table", "Emp");
da.TableMappings.Add("Table1", "Dept");
da.Fill(ds);
ds.Relations.Add("EmpDept", ds.Tables["Dept"].Columns["Deptno"],
ds.Tables["Emp"].Columns["Deptno"], false);
次の Visual Basic の例では、 を使用して Oracle REF CURSOR
をOracleDataAdapter使用して をDataSet塗りつぶす方法を示します。 これらの例では、Oracle Scott/Tiger スキーマで定義され、次の PL/SQL パッケージとパッケージ本文が必要なテーブルを使用します。 例を使用するには、サーバーでこれらを作成する必要があります。
次の Oracle パッケージを Oracle サーバー上に作成します。
CREATE OR REPLACE PACKAGE CURSPKG AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR OUT T_CURSOR);
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR);
END CURSPKG;
/
Oracle サーバーで、次の Oracle パッケージ本体を作成します。
CREATE OR REPLACE PACKAGE BODY CURSPKG AS
PROCEDURE OPEN_ONE_CURSOR (N_EMPNO IN NUMBER,
IO_CURSOR OUT T_CURSOR)
IS
V_CURSOR T_CURSOR;
BEGIN
IF N_EMPNO <> 0 THEN
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
AND EMP.EMPNO = N_EMPNO;
ELSE
OPEN V_CURSOR FOR
SELECT EMP.EMPNO, EMP.ENAME, DEPT.DEPTNO, DEPT.DNAME
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO;
END IF;
IO_CURSOR := V_CURSOR;
END OPEN_ONE_CURSOR;
PROCEDURE OPEN_TWO_CURSORS (EMPCURSOR OUT T_CURSOR,
DEPTCURSOR OUT T_CURSOR)
IS
V_CURSOR1 T_CURSOR;
V_CURSOR2 T_CURSOR;
BEGIN
OPEN V_CURSOR1 FOR SELECT * FROM EMP;
OPEN V_CURSOR2 FOR SELECT * FROM DEPT;
EMPCURSOR := V_CURSOR1;
DEPTCURSOR := V_CURSOR2;
END OPEN_TWO_CURSORS;
END CURSPKG;
/
次の Visual Basic の例では、2 つの REF CURSOR
パラメーターを返し、 に返される行を格納 DataSet する PL/SQL ストアド プロシージャを実行します。
' GetConnectionString() returns a connection string for
' the data source.
Dim connString As New String(GetConnectionString())
Dim ds As New DataSet()
Dim conn As New OracleConnection(connString)
Dim cmd As OracleCommand = conn.CreateCommand()
cmd.CommandText = "CURSPKG.OPEN_TWO_CURSORS"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("EMPCURSOR", OracleType.Cursor).Direction = _
ParameterDirection.Output
cmd.Parameters.Add("DEPTCURSOR", OracleType.Cursor).Direction = _
ParameterDirection.Output
Dim da As New OracleDataAdapter(cmd)
da.TableMappings.Add("Table", "Emp")
da.TableMappings.Add("Table1", "Dept")
da.Fill(ds)
ds.Relations.Add("EmpDept", ds.Tables("Dept").Columns("Deptno"), _
ds.Tables("Emp").Columns("Deptno"), False)
または FillSchema
操作を実行Fill
するために をOracleDataAdapter使用した後、DataColumn.ReadOnly
Oracle サーバーはこの情報を返さないので、列を更新できるかどうかに関係なく、 プロパティは常に false を返します。
コンストラクター
OracleDataAdapter() |
古い.
OracleDataAdapter クラスの新しいインスタンスを初期化します。 |
OracleDataAdapter(OracleCommand) |
古い.
指定した SQL SELECT ステートメントを使用して、OracleDataAdapter クラスの新しいインスタンスを初期化します。 |
OracleDataAdapter(String, OracleConnection) |
古い.
SQL SELECT ステートメントと OracleDataAdapter を使用して、OracleConnection クラスの新しいインスタンスを初期化します。 |
OracleDataAdapter(String, String) |
古い.
SQL SELECT ステートメントと接続文字列を使用して、OracleDataAdapter クラスの新しいインスタンスを初期化します。 |
フィールド
DefaultSourceTableName |
古い.
DataAdapter オブジェクトがテーブル マップに使用する既定の名前。 (継承元 DbDataAdapter) |
プロパティ
AcceptChangesDuringFill |
古い.
Fill 操作中に DataTable に DataRow が追加された後で、その行に対して AcceptChanges() を呼び出すかどうかを示す値を取得または設定します。 (継承元 DataAdapter) |
AcceptChangesDuringUpdate |
古い.
AcceptChanges() で Update(DataSet) が呼び出されるかどうかを取得または設定します。 (継承元 DataAdapter) |
CanRaiseEvents |
古い.
コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。 (継承元 Component) |
Container |
古い.
IContainer を含む Component を取得します。 (継承元 Component) |
ContinueUpdateOnError |
古い.
行の更新中にエラーが発生したときに、例外を生成するかどうかを指定する値を取得または設定します。 (継承元 DataAdapter) |
DeleteCommand |
古い.
データベース内のレコードを削除するための SQL ステートメントまたはストアド プロシージャを取得または設定します。 |
DesignMode |
古い.
Component が現在デザイン モードかどうかを示す値を取得します。 (継承元 Component) |
Events |
古い.
Component に結び付けられているイベント ハンドラーのリストを取得します。 (継承元 Component) |
FillCommandBehavior |
古い.
データ アダプターにデータを読み込むコマンドの動作を取得または設定します。 (継承元 DbDataAdapter) |
FillLoadOption |
古い.
アダプターが LoadOption から DataTable にデータを読み込む方法を決定する DbDataReader を取得または設定します。 (継承元 DataAdapter) |
InsertCommand |
古い.
データベースに新しいレコードを挿入するための SQL ステートメントまたはストアド プロシージャを取得または設定します。 |
MissingMappingAction |
古い.
一致するテーブルまたは列が受信データに含まれていない場合に実行するアクションを決定します。 (継承元 DataAdapter) |
MissingSchemaAction |
古い.
既存の DataSet スキーマが受信データと一致しないときに実行するアクションを決定します。 (継承元 DataAdapter) |
ReturnProviderSpecificTypes |
古い.
|
SelectCommand |
古い.
データベース内のレコードを選択するための SQL ステートメントまたはストアド プロシージャを取得または設定します。 |
Site |
古い.
Component の ISite を取得または設定します。 (継承元 Component) |
TableMappings |
古い.
ソース テーブルと の間のプライマリ マッピングを提供するコレクションを DataTable取得します。 (継承元 DataAdapter) |
UpdateBatchSize |
古い.
バッチ処理サポートを有効にするかどうか、および、1 回のバッチで実行可能なコマンド数を指定する値を取得または設定します。 |
UpdateBatchSize |
古い.
バッチ処理サポートを有効にするかどうか、および、1 回のバッチで実行可能なコマンド数を指定する値を取得または設定します。 (継承元 DbDataAdapter) |
UpdateCommand |
古い.
データベース内のレコードを更新するための SQL ステートメントまたはストアド プロシージャを取得または設定します。 |
メソッド
イベント
Disposed |
古い.
Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。 (継承元 Component) |
FillError |
古い.
格納操作中にエラーが発生したときに返されます。 (継承元 DbDataAdapter) |
RowUpdated |
古い.
更新操作中に、データベースに対してコマンドが実行された後に発生します。 |
RowUpdating |
古い.
Update(DataSet) 処理中に、データ ソースに対してコマンドが実行される前に発生します。 |
明示的なインターフェイスの実装
ICloneable.Clone() |
古い.
このメンバーの詳細については、「Clone()」をご覧ください。 |
ICloneable.Clone() |
古い.
現在のインスタンスのコピーである新しいオブジェクトを作成します。 (継承元 DbDataAdapter) |
IDataAdapter.TableMappings |
古い.
ソース テーブルをデータセット テーブルにマップする方法を示すコレクションを取得します。 (継承元 DataAdapter) |
IDbDataAdapter.DeleteCommand |
古い.
このメンバーの詳細については、「DeleteCommand」をご覧ください。 |
IDbDataAdapter.InsertCommand |
古い.
このメンバーの詳細については、「InsertCommand」をご覧ください。 |
IDbDataAdapter.SelectCommand |
古い.
このメンバーの詳細については、「SelectCommand」をご覧ください。 |
IDbDataAdapter.UpdateCommand |
古い.
このメンバーの詳細については、「UpdateCommand」をご覧ください。 |
適用対象
こちらもご覧ください
.NET