OracleCommand
オブジェクトは、SQLコマンド、ストアド・プロシージャまたは表の名前を表します。OracleCommand
オブジェクトは、要求を作成してこれをデータベースに渡す処理を担当します。結果が戻される場合、OracleCommand
は、OracleDataReader
、.NET XmlReader
、.NET Stream
、スカラー値または出力パラメータとして結果を戻す処理を担当します。
クラスの継承
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommand
(ADO.NET 2.0専用)
Oracle.DataAccess.Client.OracleCommand
宣言
// ADO.NET 2.0: C# public sealed class OracleCommand : DbCommand, ICloneable
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
備考
OracleCommand
からトランザクション関連文を実行しても、現行のローカル・トランザクション(存在する場合)を表すOracleTransaction
オブジェクトの状態に反映されないため、お薦めできません。
ExecuteXmlReader
、ExecuteStream
およびExecuteToStream
メソッドは、XML操作でのみサポートされています。
ExecuteReader
およびExecuteScalar
メソッドは、XML操作ではサポートされていません
オープン・サーバー・カーソルの数を最小限にするには、OracleCommand
オブジェクトを明示的に処理する必要があります。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class OracleCommandSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); string cmdQuery = "select ename, empno from emp"; // Create the OracleCommand OracleCommand cmd = new OracleCommand(cmdQuery); cmd.Connection = con; cmd.CommandType = CommandType.Text; // Execute command, create OracleDataReader object OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { // output Employee Name and Number Console.WriteLine("Employee Name : " + reader.GetString(0) + " , " + "Employee Number : " + reader.GetDecimal(1)); } // Clean up reader.Dispose(); cmd.Dispose(); con.Dispose(); } }
要件
ネームスペース: Oracle.DataAccess.Client
アセンブリ: Oracle.DataAccess.dll
ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4
OracleCommand
メンバーは、次の各表にリストしています。
OracleCommandコンストラクタ
OracleCommand
コンストラクタを、表5-1にリストします。
OracleCommand静的メソッド
OracleCommand
静的メソッドを、表5-2にリストします。
OracleCommandプロパティ
OracleCommand
プロパティを、表5-3にリストします。
表5-3 OracleCommandプロパティ
プロパティ | 説明 |
---|---|
選択リストの一部として |
|
|
プロパティが |
配列バインディング機能を使用するかどうか、また |
|
コレクションのバインディング・メソッドを指定します |
|
Oracle Databaseに対して実行するSQL文やストアド・プロシージャ、またはOracle Databaseに対する変更の格納に使用するXMLデータを指定します |
|
|
例外で実行を終了するまでコマンドの実行を可能にする秒数を指定します |
|
|
コマンドを実行するための接続の識別に使用される |
|
|
|
|
|
結果セット・データを格納する |
|
LOB列について |
|
|
|
|
コマンドに通知要求があることを示します |
|
コマンド実行時に、データベースにデータベース変更通知が自動登録されるかどうかを示します |
SQL文またはストアド・プロシージャのパラメータを指定します |
|
|
|
Site |
|
.NETストアド・プロシージャではサポートされません |
|
問合せコマンドの結果が、更新されている列にどのように適用されるかを指定します .NETストアド・プロシージャではサポートされません |
|
|
|
SQL問合せ文の結果セットからXML文書が作成される場合に使用されるプロパティを指定します |
|
データベースに対する変更の保存にXML文書が使用される場合のプロパティを指定します |
OracleCommandパブリック・メソッド
OracleCommand
パブリック・メソッドを、表5-4にリストします。
表5-4 OracleCommandパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
特定の接続で現在実行されているコマンドの取消しを試行します |
|
|
|
|
|
|
|
|
|
|
|
|
コマンドを実行します(オーバーロード) |
|
問合せにより戻された結果セットの最初の行の最初の列を戻します |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
このメソッドは操作不能です |
|
|
OracleCommand
コンストラクタでは、OracleCommand
クラスの新規インスタンスが作成されます。
オーバーロード・リスト:
このコンストラクタでは、OracleCommand
クラスの新規インスタンスが作成されます。
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommand
クラスの新規インスタンスをインスタンス化します。
OracleCommand(string, OracleConnection)
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommand
クラスの新規インスタンスをインスタンス化します。
このコンストラクタでは、OracleCommand
クラスの新規インスタンスが作成されます。
宣言
// C# public OracleCommand();
備考
デフォルトのコンストラクタ
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommand
クラスの新規インスタンスをインスタンス化します。
宣言
// C#
public OracleCommand(string cmdText);
パラメータ
cmdText
実行されるSQLコマンドまたはストアド・プロシージャ
このコンストラクタでは、指定されたSQLコマンドまたはストアド・プロシージャおよびOracle Databaseへの接続を使用して、OracleCommand
クラスの新規インスタンスをインスタンス化します。
宣言
// C# public OracleCommand(string cmdText, OracleConnection OracleConnection);
パラメータ
cmdText
実行されるSQLコマンドまたはストアド・プロシージャ
OracleConnection
Oracle Databaseへの接続
OracleCommand
プロパティを、表5-6にリストします。
表5-6 OracleCommandプロパティ
プロパティ | 説明 |
---|---|
|
選択リストの一部として |
|
プロパティが |
配列バインディング機能を使用するかどうか、また |
|
コレクションのバインディング・メソッドを指定します |
|
Oracle Databaseに対して実行するSQL文やストアド・プロシージャ、またはOracle Databaseに対する変更の格納に使用するXMLデータを指定します |
|
|
例外で実行を終了するまでコマンドの実行を可能にする秒数を指定します |
|
|
コマンドを実行するための接続の識別に使用される |
|
Container |
|
|
|
結果セット・データを格納する |
|
LOB列について |
|
|
|
|
コマンドに通知要求があることを示します |
|
コマンド実行時に、データベースにデータベース変更通知が自動登録されるかどうかを示します |
SQL文またはストアド・プロシージャのパラメータを指定します |
|
|
|
Site |
|
|
.NETストアド・プロシージャではサポートされません |
|
問合せコマンドの結果が、更新されている列にどのように適用されるかを指定します .NETストアド・プロシージャではサポートされません |
|
|
SQL問合せ文の結果セットからXML文書が作成される場合に使用されるプロパティを指定します |
|
データベースに対する変更の保存にXML文書が使用される場合のプロパティを指定します |
このプロパティでは、選択リストの一部としてROWID
を追加します。
宣言
// C# public bool AddRowid {get; set;}
プロパティ値
bool
備考
デフォルトはfalse
このROWID
列は非表示で、アプリケーションでアクセスすることはできません。表のROWID
にアクセスするには、このプロパティを使用しないでROWID
を明示的に選択リストに追加する必要があります。
このプロパティがtrue
に設定され、文キャッシングが有効な場合は、実行された文がキャッシュされます。文キャッシングが無効な場合、またはこのプロパティがfalse
に設定されている場合、実行された文はキャッシュされません。
宣言
// C# public bool AddToStatementCache{get; set;}
戻り値
bool
値を戻します。値true
は文がキャシュに追加されていることを示し、false
はそうでないことを示します。
プロパティ値
文キャッシングが有効になっている場合、文の実行時に文がキャッシュされるということを示すbool
値
備考
デフォルトはtrue
です。
文キャッシングが無効な場合、AddToStatementCache
は無視されます。文キャッシングは、Statement
Cache
Size
接続文字列属性を0
より大きい値に設定すると有効になります。
ただし、文キャッシングが有効な場合、このプロパティは文をキャッシュに選択的に追加する方法を提供します。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class AddToStatementCacheSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle;" + "statement cache size=10"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = new OracleCommand("select * from emp", con); if (cmd.AddToStatementCache) Console.WriteLine("Added to the statement cache:" + cmd.CommandText); else Console.WriteLine("Not added to the statement cache:" + cmd.CommandText); // The execution of "select * from emp" will be added to the statement cache // because statement cache size is greater than 0 and OracleCommand's // AddToStatementCache is true by default. OracleDataReader readerEmp = cmd.ExecuteReader(); // Do not add "select * from dept" to the statement cache cmd.CommandText = "select * from dept"; cmd.AddToStatementCache = false; if (cmd.AddToStatementCache) Console.WriteLine("Added to the statement cache:" + cmd.CommandText); else Console.WriteLine("Not added to the statement cache:" + cmd.CommandText); // The execution of "select * from dept" will not be added to the // statement cache because AddToStatementCache is set to false. OracleDataReader readerDept = cmd.ExecuteReader(); // Clean up con.Dispose(); } }
このプロパティでは、配列バインド機能を使用するかどうかを指定し、OracleParameter
Value
プロパティでバインドされる配列要素数を指定します。
宣言
// C# public int ArrayBindCount {get; set;}
プロパティ値
OracleParameter
Value
プロパティでバインドされる配列要素数を指定する整数
例外
ArgumentException
- 指定されたArrayBindCount
値が無効
備考
デフォルト = 0
ArrayBindCount
が0
の場合は、配列バインドは使用されません。それ以外の場合は、配列バインドが使用されOracleParameter
Value
プロパティが値の配列として解釈されます。配列バインド機能を使用する場合は、ArrayBindCount
の値を指定する必要があります。
DbType
とOracleDbType
のどちらも設定されていない場合は、OracleParameter
Value
プロパティを設定する前にArrayBindCount
を設定して、Value
からのDbType
およびOracleDbType
の判断が正しくできるようにすることをお薦めします。
デフォルトでは配列バインドは使用されません。
XmlCommandType
プロパティがNone
以外の任意の値に対して設定されている場合は、このプロパティは無視されます。
このプロパティでは、コレクションのバインド・メソッドを指定します。
宣言
// C# public bool BindByName {get; set;}
プロパティ値
パラメータが名前別にバインドされる場合はtrue
を戻し、位置別にバインドされる場合はfalse
を戻します。
備考
デフォルト = false
次の条件の場合、BindByName
は無視されます。
XmlCommandType
プロパティの値が、Insert
、Update
またはDelete
の場合
XmlCommandType
プロパティの値がQuery
であるが、OracleCommand
にパラメータが設定されていない場合
XmlCommandType
プロパティがOracleXmlCommandType.Query
で、任意のパラメータがOracleCommand
で設定されている場合は、BindByName
プロパティをtrue
に設定する必要があります。それ以外の場合は、次のOracleCommand
メソッドではInvalidOperationException
をスローします。
ExecuteNonQuery
ExecuteXmlReader
ExecuteStream
ExecuteToStream
このプロパティでは、Oracle Databaseに対して実行するSQL文またはストアド・プロシージャ、またはOracle Databaseの変更を格納する際に使用するXMLデータを指定します。
宣言
// ADO.NET 2.0: C# public override string CommandText {get; set;}
プロパティ値
string
実装
IDbCommand
備考
デフォルトは空の文字列です。
CommandType
プロパティがStoredProcedure
に設定されると、CommandText
プロパティはストアド・プロシージャの名前に設定されます。Execute
メソッドが呼び出されると、コマンドはこのストアド・プロシージャを呼び出します。
CommandText
のXmlCommandType
値への影響は次のとおりです。
XmlCommandType
= None
。
CommandType
プロパティによってCommandText
の内容が決まります。
XmlCommandType
= Query
。
CommandText
はSQL問合せである必要があります。SQL問合せは選択文である必要があります。CommandType
プロパティは無視されます。
XmlCommandType
プロパティは、Insert
、Update
またはDelete
です。
CommandText
はXML文書である必要があります。CommandType
プロパティは無視されます。
このプロパティは、コマンドが例外で実行を終了するまでに実行可能な秒数を指定します。
宣言
// ADO.NET 2.0: C# public override int CommandTimeout {get; set;}
プロパティ値
int
実装
IDbCommand.CommandTimeout
例外
InvalidArgument
- 指定された値が0未満です。
備考
デフォルトは0
秒で、時間の制限はありません。
コマンドの実行が終了する前に、指定されたタイムアウト値を超えた場合、コマンドは取消しを試みます。正しく取り消された場合は、ORA-01013:
user
requested
cancel
of
current
operation
というメッセージの例外がスローされます。コマンドのタイムアウトの期限切れが発生した場合、他の例外としてORA-00936
およびORA-00604
がスローされることがあります。コマンドが期限内にエラーなしで実行された場合は、例外がスローされません。
複数のOracleCommand
オブジェクトで同じ接続を使用している場合、いずれかのOracleCommand
オブジェクトでタイムアウトが発生すると、その接続上の他の実行が終了する可能性があります。OracleCommand
のCommandTimeout
プロパティの値が0
より大きく設定されている場合、OracleCommand
のタイムアウトの際に、該当するコマンド実行のみが取り消されるようにするには、各接続でOracleCommand
を1つのみ使用するようにします。
このプロパティでは、CommandText
プロパティの解釈の方法を示すコマンド・タイプを指定します。
宣言
// ADO.NET 2.0: C# public override CommandType CommandType {get; set;}
プロパティ値
CommandType
例外
ArgumentException
: CommandType.Text
、CommandType.StoredProcedure
、CommandType.TableDirect
などのように、この値は無効なCommandType
です。
備考
デフォルト = CommandType.Text
XmlCommandType
プロパティの値がNone
ではない場合は、CommandType
プロパティは無視されます。
このプロパティでは、コマンドを実行する接続の識別に使用されるOracleConnection
オブジェクトを指定します。
宣言
// C# public OracleConnection Connection {get; set;}
プロパティ値
OracleConnection
オブジェクト
実装
IDbCommand
備考
デフォルト = null
このプロパティは、OracleCommand
オブジェクトが設計者の制御で表示できるかどうか指定します。
宣言
// C# public override bool DesignTimeVisible { get; set; }
プロパティ値
OracleCommand
オブジェクトが制御により表示できるかどうかを示す値。デフォルトはtrue
です。
備考
開発者はこのプロパティを使用してOracleCommand
オブジェクトが制御により表示できるかどうかを示します。
このプロパティは、OracleDataReader
の内部キャッシュのサイズを指定し、結果セットのデータを格納します。
宣言
// C# public long FetchSize {get; set;}
プロパティ値
OracleDataReader
の内部キャッシュのサイズ(バイト)を指定するlong
です。
例外
ArgumentException
- 指定したFetchSize
値は無効です。
備考
デフォルト = 131072。
FetchSize
プロパティは、結果セットを戻すコマンドを実行して作成したOracleDataReader
により、継承されます。OracleDataReader
オブジェクト上のFetchSize
プロパティにより、OracleDataReader
がデータベース・ラウンドトリップごとの内部キャッシュにフェッチするデータ量が決定されます。
XmlCommandType
プロパティがNone
以外の任意の値に対して設定されている場合は、このプロパティは無視されます。
RowSize
およびFetchSize
プロパティは、他のスカラー・データ型とは異なる方法でUDTおよびXMLType
データを処理します。ODP.NETの内部キャッシュにはUDTおよびXMLType
データへの参照のみが格納されているため、RowSize
プロパティはUDTおよびXMLType
データの実際のサイズではなく、参照に必要なメモリー(非常に少量)のみを算定します。その結果、アプリケーションは1回のデータベース・ラウンドトリップで多数のUDTまたはXMLType
インスタンスをデータベースからフェッチしてしまう可能性があります。これは、UDTおよびXMLType
データの実際のサイズがFetchSize
に対するものではなく、デフォルトのキャッシュ・サイズである131072バイトを満たすには非常に多くのUDTおよびXMLType
参照が必要となるためです。したがって、UDTまたはXMLType
データをフェッチする際には、フェッチする実際のUDTおよびXMLType
データの総量ではなく、対象UDTおよびXMLType
インスタンスの数を制御するよう、FetchSize
プロパティを適切に構成する必要があります。
注意: LOBおよびLONG
データ型の場合、選択リストの各LOBのキャッシュによって保持されたメタデータおよび参照情報に加えて、InitialLOBFetchSize
およびInitialLONGFetchSize
プロパティで指定されたサイズのみがRowSize
プロパティによって算定されます。
このプロパティは、OracleDataReader
がLOB列に対して最初にフェッチするデータ量を指定します。
宣言
// C# public int InitialLOBFetchSize {get; set;}
プロパティ値
最初にフェッチする文字数またはバイト数を指定するint
例外
ArgumentException
- 指定したInitialLOBFetchSize
値が無効です。
備考
InitialLOBFetchSize
の値は、OracleDataReader
によってただちにフェッチされるLOBデータの初期量を指定します。プロパティ値は、CLOB
およびNCLOB
データの場合は文字数、BLOB
データの場合はバイト数を指定します。
InitialLOBFetchSize
値を使用して、LOB列が選択リストにある場合にフェッチするLOB列データ長を決定します。LOB列が選択リストにない場合、InitialLOBFetchSize
値は無視されます。
InitialLOBFetchSize
が-1
に設定されている場合、LOBデータ全体がプリフェッチされ、フェッチ配列に格納されます。OracleDataReader
のGetString
、GetChars
またはGetBytes
をコールすると、データ全体を検索できます。この場合、次のメソッドは無効になります。
GetOracleBlob
GetOracleClob
GetOracleClobForUpdate
GetOracleBlobForUpdate
この機能は、Oracle Database 9iリリース2(9.2)以上からデータを取得する際に動作します。
デフォルト = 0
Oracle Database 10gリリース 2(10.2)以上:
InitialLOBFetchSize
に対してサポートされている最大値は2GBです。
Oracle Database 10gリリース2 (10.2)以前では、InitialLOBFetchSize
がゼロ以外に設定されていると、GetOracleBlob
およびGetOracleClob
メソッドが無効になりました。BLOB
およびCLOB
データは、GetBytes
およびGetChars
メソッドを個別に使用してフェッチされます。Oracle Database 10gリリース2 (10.2)では、この制限は存在しません。GetOracleBlob
およびGetOracleClob
メソッドはすべてのInitialLOBFetchSize
値をゼロ以上で使用できます。
Oracle Database 10gリリース 2(10.2)より前のリリース:
InitialLOBFetchSize
に対してサポートされている最大値は32KBです。
指定されたInitialLOBFetchSize
の値より多くフェッチするには、次のうちの1つが選択リストにある必要があります。
主キー
ROWID
一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT
NULL
制約があります)
このプロパティが0
に設定されている場合は、前述のいずれも不要になります。
このプロパティでは、OracleDataReader
がLONG
およびLONG
RAW
列に対して最初にフェッチするデータ量を指定します。
宣言
// C# public int InitialLONGFetchSize {get; set;}
プロパティ値
量を指定するint
例外
ArgumentException
- 指定したInitialLONGFetchSize
値が無効です。
備考
InitialLONGFetchSize
に対してサポートされている最大値は32767
です。このプロパティがそれより大きい値に設定されている場合は、プロバイダによって32767
にリセットされます。
InitialLONGFetchSize
の値は、OracleDataReader
によってただちにフェッチされるLONG
またはLONG
RAW
のデータの初期量を指定します。プロパティ値は、LONG
データの場合は文字数、LONG
RAW
の場合はバイト数を指定します。指定されたInitialLONGFetchSize
の量より多くフェッチするには、次のうちの1つが選択リストにある必要があります。
主キー
ROWID
一意の列 - (一意制約が定義されたか、または一意索引が作成された1セットの列として定義されたもの。セット内の少なくとも1列には、ここで定義されたNOT
NULL
制約があります)
LONGまたはLONG RAWデータのいずれかが選択リストにある場合、InitialLONGFetchSize
値は、LONG
およびLONG
RAW
列データ長の決定に使用されます。選択リストにLONG
またはLONG
RAW
列が含まれていない場合、InitialLONGFetchSize
値は無視されます。
InitialLONGFetchSize
が-1
に設定されている場合、LONG
データまたはLONG
RAW
データ全体がプリフェッチされ、フェッチ配列に格納されます。OracleDataReader
のGetString
、GetChars
またはGetBytes
をコールすると、データ全体を検索できます。
デフォルト = 0
このプロパティを0
に設定すると、そのプロパティがアプリケーションにより要求されるまでLONG
およびLONG
RAW
データの検索全体が延期されます。
このインスタンス・プロパティは、コマンドに通知要求があることを示します。
宣言
// C# public OracleNotificationRequest Notification {set; get;}
プロパティ値
コマンドの通知要求
備考
最初の変更通知が登録されると、クライアント・リスナーが開始され、データベース通知を受け取れるようになります。リスナーでは、OracleDependency.Port
静的フィールドで定義されているポート番号が使用されます。後続の変更通知登録では、同じクライアント・プロセス内の同じリスナーが使用され、別のリスナーは開始されません。
Notification
がOracleNotificationRequest
インスタンスに設定されている場合は、コマンドの実行時に通知登録が作成されます(まだ作成されていない場合)。登録の作成後は、OracleNotificationRequest
インスタンスのプロパティは変更できません。通知登録がすでに作成されている場合は、コマンドに関連付けられている結果セットが既存の登録に追加されます。
Notification
がnull
に設定されている場合、後続コマンドの実行に通知要求は不要になります。通知要求が不要な場合は、Notification
プロパティをnull
に設定するか、NotificationAutoEnlist
プロパティをfalse
に設定します。
連続問合せ通知の場合、通知要求は複数のコマンドの実行に使用できます。その場合、異なるコマンドに関連する問合せ結果セットを同じ登録内で無効にすることができます。
OracleDependency.OnChange
イベントが実行される際に、ROWID
列が明示的に問合せに含まれる(または、AddRowid
プロパティがtrue
に設定される)場合は、Rowid
列にOracleNotificationEventArgs.Details
プロパティが参照するDataTable
内のROWID
値が含まれます。OracleDependency.RowidInfo
をOracleRowidInfo.Include
またはOracleRowidInfo.Exclude
にそれぞれ設定して、OracleNotificationEventArgs
内のROWID
値を含めるか含めないかを明示的に要求することで、この動作をオーバーライドできます。
このインスタンス・プロパティは、コマンドの実行時にデータベース変更通知がデータベースに自動登録されるかどうかを示します。
宣言
// C# public bool NotificationAutoEnlist {set; get;}
プロパティ値
コマンドの実行時に自動的にデータベース変更通知要求が作成されるかどうかを示すbool
値。NotificationAutoEnlist
がtrue
に設定されており、Notification
プロパティが適切に設定されている場合、データベース変更通知要求は自動登録されます。それ以外の場合は、データベース変更通知登録は行われません。
デフォルト値: true
備考
通知要求は、同じOracleCommand
インスタンスを使用する複数のコマンドの実行に使用できます。その場合には、NotificationAutoEnlist
プロパティをtrue
に設定します。
このプロパティは、SQL文またはストアド・プロシージャのパラメータを指定します。
宣言
// C# public OracleParameterCollection Parameters {get;}
プロパティ値
OracleParameterCollection
実装
IDbCommand
備考
デフォルト値 = 空のコレクション
コレクション内のパラメータ数は、コマンド・テキスト内のパラメータ・プレースホルダの数と同じである必要があります。同じでない場合は、エラーが発生します。
コマンド・テキストにパラメータ・トークン(たとえば、:1
,:2
など)が含まれていない場合、Parameters
プロパティ内の値は無視されます。
このプロパティは、OracleDataReader
内部キャッシュがデータの1行を保存するために必要とするメモリー量を指定します。
宣言
// C# public long RowSize {get;}
プロパティ値
long
は、OracleDataReader
が実行された問合せのデータ1行を格納するために必要とするメモリー量(バイト)を示します。
備考
デフォルト値 = 0
RowSize
プロパティは、結果セットを戻すコマンドの実行後、ゼロ以外の値に設定されます。このプロパティは、行数に基づいてFetchSize
を設定する場合に、設計時または実行時に動的に使用できます。たとえば、OracleDataReader
を有効にして、データベース・ラウンドトリップごとにN
行をフェッチするには、OracleDataReader
のFetchSize
プロパティをRowSize * N
に動的に設定できます。FetchSize
を適切に有効化するには、OracleCommand.ExecuteReader()
の後に設定し、かつOracleDataReader.Read()
の前に設定する必要があることに注意してください。
このプロパティは、OracleCommand
の実行対象となるOracleTransaction
オブジェクトを指定します。
宣言
// C# public OracleTransaction Transaction {get;}
プロパティ値
OracleTransaction
実装
IDbCommand
備考
デフォルト値 = null
Transaction
は、OracleCommand
接続オブジェクトに関連付けられたトランザクション・オブジェクトへの参照を戻します。そのため、現在接続を実行しているすべてのトランザクションのコンテキストにおいても、コマンドが実行されます。
注意: このプロパティがIDbCommand 参照でアクセスされた場合、その一連のアクセッサ・メソッドは操作できません。 |
備考(.NETストアド・プロシージャ)
常にnull
を戻します。
このプロパティは、問合せコマンドの結果が、更新される行にどのように適用されるかを指定します。
宣言
// ADO.NET 2.0: C# public override UpdateRowSource UpdatedRowSource {get; set;}
プロパティ値
UpdateRowSource
実装
IDbCommand
例外
ArgumentException
- 指定されたUpdateRowSource
値が無効です。
備考
常にUpdateRowSourceを戻します。
値がUpdateRowSource.None
以外の場合、SetアクセッサはArgumentException
をスローします。
このプロパティは、OracleCommand
のXML操作のタイプを指定します。
宣言
// C# public OracleXmlCommandType XmlCommandType {get; set;}
プロパティ値
OracleXmlCommandType
備考
デフォルト値は、None
XmlCommandType
値と使用方法
None
- CommandType
プロパティは、操作のタイプを指定します。
Query
- CommandText
プロパティは、SQL SELECT文に設定する必要があります。問合せが実行され、結果がXML文書として戻されます。CommandText
内のSQL SELECT文およびXmlQueryProperties
プロパティにより指定されたプロパティは、操作の実行に使用されます。CommandType
プロパティは無視されます。
Insert
、Update
またはDelete
- CommandText
プロパティは、変更の対象を含むXML文書です。CommandText
内のXML文書およびXmlSaveProperties
プロパティにより指定されたプロパティは、操作の実行に使用されます。CommandType
プロパティは無視されます。
このプロパティは、XML文書をSQL問合せ文の結果セットから作成する場合に使用されるプロパティを指定します。
宣言
// C# public OracleXmlQueryProperties XmlQueryProperties {get; set;}
プロパティ値
OracleXmlQueryProperties
備考
OracleCommand
の新規インスタンスが作成されると、OracleXmlQueryProperties
のインスタンスはOracleCommand.XmlQueryProperties
プロパティを通じてOracleCommand
インスタンス上で自動的に有効になります。
OracleXmlQueryProperties
の新規インスタンスは、OracleCommand
インスタンスに割り当てられます。OracleXmlQueryProperties
のインスタンスをOracleCommand
インスタンスのXmlQueryProperties
に割り当てると、OracleCommand
に対する指定されたインスタンスOracleXmlQueryProperties
の新規インスタンスが作成されます。この方法で、各OracleCommand
インスタンスは、独自のOracleXmlQueryProperties
インスタンスを取得します。
デフォルトのコンストラクタを使用して、OracleXmlQueryProperties
の新規インスタンスを取得します。
OracleXmlQueryProperties
インスタンスのコピーを取得するには、OracleXmlQueryProperties.Clone()
メソッドを使用します。
このプロパティを使用して、XML文書によるデータベースへの変更の保存を行う場合に使用されるプロパティを指定します。
宣言
// C# public OracleXmlSaveProperties XmlSaveProperties {get; set;}
プロパティ値
OracleXmlSaveProperties
備考
OracleCommand
の新規インスタンスが作成されると、OracleXmlSaveProperties
のインスタンスはOracleCommand.XmlSaveProperties
プロパティを通じてOracleCommand
インスタンス上で自動的に有効になります。
OracleXmlSaveProperties
の新規インスタンスは、OracleCommand
インスタンスに割り当てられます。OracleXmlSaveProperties
のインスタンスをOracleCommand
インスタンスのXmlSaveProperties
に割り当てると、OracleCommand
に対して指定されたインスタンスOracleXmlSaveProperties
の新規インスタンスが作成されます。この方法で、各OracleCommand
インスタンスは、独自のOracleXmlSaveProperties
インスタンスを取得します。
OracleXmlSaveProperties
の新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。
OracleXmlSaveProperties.Clone()
メソッドを使用して、OracleXmlSaveProperties
インスタンスのコピーを取得します。
OracleCommand
パブリック・メソッドを、表5-7にリストします。
表5-7 OracleCommandパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
特定の接続で現在実行されているコマンドの取消しを試行します |
|
|
|
|
|
|
|
|
|
|
|
|
コマンドを実行します(オーバーロード) |
|
問合せにより戻された結果セットの最初の行の最初の列を戻します |
|
|
|
|
|
|
|
|
|
|
System. |
|
|
|
|
|
このメソッドは操作不能です |
|
|
このメソッドは、特定の接続で現在実行されているコマンドの取消しを試みます。
宣言
// ADO.NET 2.0: C# public override void Cancel();
実装
IDbCommand.Cancel
備考
コマンドが正しく取り消された場合は、例外がスローされます。正しく取り消されない場合、例外はスローされません。Cancel
の起動時に実行中のコマンドがない場合、Cancel
は何も実行しません。Cancel
メソッドを起動しても、その時点で実行されているコマンドが常に取り消されることが保証されるわけではありません。実行が終了する前にその実行が完了する場合があります。このような場合、例外はスローされません。
複数のOracleCommand
オブジェクトが同じ接続を共有する場合、その接続上の一時点で実行できるコマンドは1つのみです。Cancel
メソッドは、起動されると、OracleCommand
オブジェクトがコマンドの実行に使用している接続上で現在実行されている文を取り消そうとします。ただし、複数のOracleCommand
オブジェクトが同じ接続上で同時に文を実行している場合は、Cancel
メソッドを起動すると、発行済のコマンドが取り消される可能性があります。これは、Cancel
の起動が有効になる前に取消を指示したコマンドが完了する可能性があるためです。これが発生した場合、別のOracleCommand
によって実行されるコマンドが、かわりに取り消される可能性があります。
Cancel
メソッドが原因となるこの不確定な状況を回避するには、次のようないくつかの方法があります。
アプリケーションで各接続にOracleCommand
オブジェクトを1つのみ作成できます。これにより、特定の接続を使用するOracleCommand
オブジェクトで実行されるコマンドのみが、Cancel
の起動によって確実に取り消されます。
アプリケーション内でのコマンドの実行は、同じ接続を使用するOracleCommand
オブジェクト間で同期化することができます。
Cancel
がアプリケーションで使用されない場合、前述の内容は適用されません。
現在の実行がいつ終了するかは不明確であるため、非原子的なSQLまたはPL/SQLの実行はトランザクション内で開始することをお薦めします。コマンドの実行が例外ORA-01013:
user
requested
cancel
of
current
operation
で正しく終了した場合、トランザクションをロールバックしてデータの整合性を保つことができます。コマンドの取消が発生した場合、他の例外としてORA-00936
およびORA-00604
がスローされることがあります。非原子的な実行の例としては、1つずつ実行されるDMLコマンドのコレクションや、PL/SQLのストアド・プロシージャまたは関数の一部である複数のDMLコマンドなどがあります。
例
// C# // This example shows how command executions can be cancelled in a // deterministic way even if multiple commands are executed on a single // connection. This is accomplished by synchronizing threads through events. // Since the Cancel method terminates the currently running operation on the // connection, threads must be serialized if multiple threads are using the // same connection to execute server round-trip incurring operations. // Furthermore, the example shows how the execution and cancel threads should // be synchronized so that nth iteration of the command execution does not // inappropriately cancel the (n+1)th command executed by the same thread. using System; using System.Data; using Oracle.DataAccess.Client; using System.Threading; class CancelSample { private OracleCommand cmd; Thread t1, t2; // threads signal following events when assigned operations are completed private AutoResetEvent ExecuteEvent = new AutoResetEvent(false); private AutoResetEvent CancelEvent = new AutoResetEvent(false); private AutoResetEvent FinishedEvent = new AutoResetEvent(false); AutoResetEvent[] ExecuteAndCancel = new AutoResetEvent[2]; // Default constructor CancelSample() { cmd = new OracleCommand("select * from all_objects", new OracleConnection("user id=scott;password=tiger;data source=oracle")); ExecuteAndCancel[0] = ExecuteEvent; ExecuteAndCancel[1] = CancelEvent; } // Constructor that takes a particular command and connection CancelSample(string command, OracleConnection con) { cmd = new OracleCommand(command, con); ExecuteAndCancel[0] = ExecuteEvent; ExecuteAndCancel[1] = CancelEvent; } // Execution of the command public void Execute() { OracleDataReader reader = null; try { Console.WriteLine("Execute."); reader = cmd.ExecuteReader(); Console.WriteLine("Execute Done."); reader.Close(); } catch(Exception e) { Console.WriteLine("The command has been cancelled.", e.Message); } Console.WriteLine("ExecuteEvent.Set()"); ExecuteEvent.Set(); } // Canceling of the command public void Cancel() { try { // cancel query if it takes longer than 100 ms to finish execution System.Threading.Thread.Sleep(100); Console.WriteLine("Cancel."); cmd.Cancel(); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.WriteLine("Cancel done."); Console.WriteLine("CancelEvent.Set()"); CancelEvent.Set(); } // Execution of the command with a potential of cancelling public void ExecuteWithinLimitedTime() { for (int i = 0; i < 5; i++) { Monitor.Enter(typeof(CancelSample)); try { Console.WriteLine("Executing " + this.cmd.CommandText); ExecuteEvent.Reset(); CancelEvent.Reset(); t1 = new Thread(new ThreadStart(this.Execute)); t2 = new Thread(new ThreadStart(this.Cancel)); t1.Start(); t2.Start(); } finally { WaitHandle.WaitAll(ExecuteAndCancel); Monitor.Exit(typeof(CancelSample)); } } FinishedEvent.Set(); } [MTAThread] static void Main() { try { AutoResetEvent[] ExecutionCompleteEvents = new AutoResetEvent[3]; // Create the connection that is to be used by three commands OracleConnection con = new OracleConnection("user id=scott;" + "password=tiger;data source=oracle"); con.Open(); // Create instances of CancelSample class CancelSample test1 = new CancelSample("select * from all_objects", con); CancelSample test2 = new CancelSample("select * from all_objects, emp", con); CancelSample test3 = new CancelSample("select * from all_objects, dept", con); // Create threads for each CancelSample object instance Thread t1 = new Thread(new ThreadStart(test1.ExecuteWithinLimitedTime)); Thread t2 = new Thread(new ThreadStart(test2.ExecuteWithinLimitedTime)); Thread t3 = new Thread(new ThreadStart(test3.ExecuteWithinLimitedTime)); // Obtain a handle to an event from each object ExecutionCompleteEvents[0] = test1.FinishedEvent; ExecutionCompleteEvents[1] = test2.FinishedEvent; ExecutionCompleteEvents[2] = test3.FinishedEvent; // Start all threads to execute three commands using a single connection t1.Start(); t2.Start(); t3.Start(); // Wait for all three commands to finish executing/canceling before //closing the connection WaitHandle.WaitAll(ExecutionCompleteEvents); con.Close(); } catch (Exception e) { Console.WriteLine(e.ToString()); } } }
このメソッドでは、OracleCommand
オブジェクトのコピーを作成します。
宣言
// C# public object Clone();
戻り値
OracleCommand
オブジェクト
実装
ICloneable
備考
複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。
このメソッドでは、OracleParameter
クラスの新規インスタンスを作成します。
宣言
// C# public OracleParameter CreateParameter();
戻り値
デフォルト値の新規OracleParameter
実装
IDbCommand
このメソッドでは、XmlCommandType
プロパティおよびCommandText
プロパティを使用してSQL文またはコマンドを実行し、影響を受ける行数を戻します。
宣言
// ADO.NET 2.0: C# public override int ExecuteNonQuery();
戻り値
影響を受ける行数
実装
IDbCommand
例外
InvalidOperationException
- コマンドを実行できない場合
備考
ExecuteNonQuery
では、次の場合に影響を受ける行数を戻します。
コマンドが、UPDATE
、INSERT
またはDELETE
で、XmlCommandType
プロパティがOracleXmlCommandType.None
に設定されている場合。
XmlCommandType
プロパティが、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
、OracleXmlCommandType.Delete
に設定されている場合。
その他のすべての文のタイプに対する戻り値は-1
です。
ExecuteNonQuery
は次のいずれかに対して使用されます。
カタログ操作(データベース構造の問合せまたは表などのデータベース・オブジェクトの作成など)。
UPDATE
、INSERT
またはDELETE
文の実行による、DataSet
を使用しないデータベース内のデータ変更。
XML文書を使用したデータベース内のデータ変更。
ExecuteNonQuery
では、行を戻しませんが、任意の出力パラメータを移入したりまたはパラメータにマップされる値のデータを戻します。
XmlCommandType
プロパティがOracleXmlCommandType.Query
に設定されている場合、ExecuteNonQuery
はCommandText
プロパティ内の選択文を実行し、成功した場合-1
を戻します。生成されるXML文書は廃棄されます。これは、結果としてXML文書を戻さないで操作が正常に完了するかどうかを判別する場合に便利です。
XmlCommandType
プロパティが、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
または、OracleXmlCommandType.Delete
に設定されている場合、CommandText
プロパティの値はXML文書です。ExecuteNonQuery
では、そのXML文書の変更をXmlSaveProperties
プロパティで指定されている表またはビューに保存します。戻り値はXML文書で処理された行数です。また、XML文書の各行もデータベース内の複数行に影響を与える可能性がありますが、この場合も戻り値はXML文書の行数です。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class ExecuteNonQuerySample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = new OracleCommand( "select sal from emp where empno=7934", con); object sal = cmd.ExecuteScalar(); Console.WriteLine("Employee sal before update: " + sal); cmd.CommandText = "update emp set sal = sal + .01 where empno=7934"; // Auto-commit changes int rowsUpdated = cmd.ExecuteNonQuery(); if (rowsUpdated > 0) { cmd.CommandText = "select sal from emp where empno=7934"; sal = cmd.ExecuteScalar(); Console.WriteLine("Employee sal after update: " + sal); } // Clean up cmd.Dispose(); con.Dispose(); } }
要件
XMLをサポートするために、このメソッドではデータベースにOracle9i XML Developer's Kits(Oracle XDK)以降をインストールする必要があります。Oracle XDKはOracle Technology Network(OTN)からダウンロードできます。
オーバーロード・リスト:
ExecuteReader
では、CommandText
で指定されたコマンドを実行します。
このメソッドでは、CommandText
で指定されたコマンドを実行し、OracleDataReader
オブジェクトを戻します。
ExecuteReader(CommandBehavior)
このメソッドでは、CommandText
で指定されたコマンドを実行し、指定されたCommandBehavior
値を使用してOracleDataReader
オブジェクトを戻します。
このメソッドでは、CommandText
で指定されたコマンドを実行し、OracleDataReader
オブジェクトを戻します。
宣言
// C# public OracleDataReader ExecuteReader();
戻り値
OracleDataReader
実装
IDbCommand
例外
InvalidOperationException
- コマンドを実行できない場合
備考
CommandType
プロパティがCommandType.StoredProcedure
に設定されると、CommandText
プロパティはストアド・プロシージャの名前に設定される必要があります。
ExecuteReader
を呼び出すと、この指定したコマンドによってこのストアド・プロシージャが実行されます。ストアド・プロシージャのパラメータがREF
CURSOR
オブジェクトで構成されている場合は、ExecuteReader()
またはExecuteNonQuery()
を呼び出すかどうかによって動作は異なります。ExecuteReader()
を起動すると、REF
CURSOR
オブジェクトは、戻されるOracleDataReader
を通じてアクセスできます。1つの実行から複数のREF
CURSOR
が戻される場合、後続のREF
CURSOR
オブジェクトは、NextResult
メソッドによってOracleDataReader
で順番にアクセスできます。ExecuteNonQuery
メソッドを起動すると、出力パラメータ値をOracleRefCursor
型にキャストでき、次にOracleRefCursor
オブジェクトを使用して、DataSet
を移入するかまたはOracleDataReader
オブジェクトを作成できます。この方法で、出力パラメータとして戻されたすべてのREF
CURSOR
オブジェクトにランダムにアクセスすることができます。
FetchSize
に対しては値100
が使用されます。0
を指定すると、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。
XmlCommandType
プロパティの値が、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
、OracleXmlCommandType.Delete
またはOracleXmlCommandType.Query
に設定されている場合、ExecuteReader
メソッドはInvalidOperationException
をスローします。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class ExecuteReaderSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = new OracleCommand("select ename from emp", con); OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine("Employee Name : " + reader.GetString(0)); } // Clean up reader.Dispose(); cmd.Dispose(); con.Dispose(); } }
このメソッドでは、CommandText
で指定されたコマンドを実行し、指定された動作を使用してOracleDataReader
オブジェクトを戻します。
宣言
// C#
public OracleDataReader ExecuteReader(CommandBehavior behavior);
パラメータ
behavior
必要な動作
戻り値
OracleDataReader
実装
IDbCommand
例外
InvalidOperationException
- コマンドを実行できない場合
備考
結果の説明と問合せコマンドのデータベースに対する影響は、コマンド動作を規定する、指定されたbehavior
によって示されます。
有効なCommandBehavior
値および各CommandBehavior
の列挙タイプのコマンドの動作は、.NET Frameworkのドキュメントを参照してください。
CommandType
プロパティがCommandType.StoredProcedure
に設定されると、CommandText
プロパティはストアド・プロシージャの名前に設定される必要があります。ExecuteReader()
を呼び出すと、このコマンドによってこのストアド・プロシージャが実行されます。
ストアド・プロシージャが格納されたREF
CURSOR
を戻す場合、詳細はOracleRefCursor
の項を参照してください。「OracleRefCursorクラス」を参照してください。
FetchSize
に対しては値100
が使用されます。0
を指定すると、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。
XmlCommandType
プロパティの値が、OracleXmlCommandType.Insert
、OracleXmlCommandType.Update
、OracleXmlCommandType.Delete
またはOracleXmlCommandType.Query
に設定されている場合、ExecuteReader
メソッドはInvalidOperationException
をスローします。
このメソッドでは、接続を使用して問合せを実行し、問合せによって戻された結果セット内の最初の行の最初の列を戻します。
宣言
// ADO.NET 2.0: C# public override object ExecuteScalar();
戻り値
最初の行、最初の列の値を表すオブジェクト
実装
IDbCommand
例外
InvalidOperationException
- コマンドを実行できない場合
備考
追加列または行は無視されます。ExecuteScalar
では、データベースから単一値(たとえば集合値)を取り出します。ExecuteReader()
メソッドを使用する場合より少ないコードで済み、必要な操作を実行してOracleDataReader
によって戻されたデータで単一値を生成します。
問合せで行を戻さない場合は、null
を戻します。
XmlCommandType
プロパティの値が次のいずれかに設定されている場合、ExecuteScalar
メソッドがInvalidOperationException
をスローします。OracleXmlCommandType
値: Insert
、Update
、Delete
、Query
。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class ExecuteScalarSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleCommand cmd = new OracleCommand("select count(*) from emp", con); object count = cmd.ExecuteScalar(); Console.WriteLine("There are {0} rows in table emp", count); // Clean up cmd.Dispose(); con.Dispose(); } }
このメソッドでは、XmlCommandType
プロパティとCommandText
プロパティを使用してコマンドを実行し、結果を新規Stream
オブジェクトにXML文書として戻します。
宣言
// C# public Stream ExecuteStream();
戻り値
Stream
備考
ExecuteStream
の動作はXmlCommandType
プロパティ値によって異なります。
XmlCommandType
= OracleXmlCommandType.None
ExecuteStream
は、InvalidOperationException
をスローします。
XmlCommandType
= OracleXmlCommandType
.Query
ExecuteStream
では、CommandText
プロパティの選択文を実行し、成功した場合は、生成されたXML文書を含むOracleClob
オブジェクトを戻します。OracleClob
にはUnicode文字が含まれます。
SQL問合せによって行が戻されない場合、ExcecuteStream
では、空のXML文書を含むOracleClob
オブジェクトを戻します。
XmlCommandType
= OracleXmlCommandType
.Insert
、OracleXmlCommandType
.Update
またはOracleXmlCommandType
.Delete
CommandText
プロパティの値はXML文書です。ExecuteStream
では、そのXML文書内のデータをXmlSaveProperties
プロパティで指定されている表またはビューに保存し、空のOracleClob
が戻されます。
関連項目:
|
このメソッドでは、XmlCommandType
プロパティとCommandText
プロパティを使用してコマンドを実行し、結果をアプリケーションによって指定された既存のStream
にXML文書として追加します。
宣言
// C#
public void ExecuteToStream(Stream outputStream);
パラメータ
outputStream
Stream
備考
ExecuteToStream
の動作はXmlCommandType
プロパティ値によって異なります。
XmlCommandType
= OracleXmlCommandType.None
ExecuteToStream
では、InvalidOperationException
をスローします。
XmlCommandType
= OracleXmlCommandType
.Query
ExecuteToStream
では、CommandText
プロパティの選択文を実行し、成功した場合は指定したStream
に生成されたXML文書を追加します。
SQL問合せによって行が戻されない場合は、指定されたStream
には何も追加されません。追加されたデータのキャラクタ・セットはUnicodeです。
XmlCommandType
= OracleXmlCommandType
.Insert
、OracleXmlCommandType
.Update
またはOracleXmlCommandType
.Delete
CommandText
プロパティの値はXML文書です。ExecuteToStream
では、そのXML文書の変更をXmlSaveProperties
プロパティで指定されている表またはビューに保存します。指定されたStream
には何も追加されません。
関連項目:
|
このメソッドは、XmlCommandType
およびCommandText
プロパティを使用してコマンドを実行し、結果をXML文書として.NET XmlTextReader
オブジェクトに戻します。
宣言
// C# public XmlReader ExecuteXmlReader();
戻り値
XmlReader
備考
ExecuteXmlReader
の動作は、XmlCommandType
プロパティ値により次のように異なります。
XmlCommandType
= OracleXmlCommandType.None
ExecuteStream
は、InvalidOperationException
をスローします。
XmlCommandType
= OracleXmlCommandType
.Query
ExecuteXmlReader
は、CommandText
プロパティ内のSELECT文を実行します。正常に実行されると、生成されたXML文書を含む.NET XmlTextReader
オブジェクトが戻されます。
XML文書が空の場合(SQL問合せで戻される行がない場合に発生する可能性があります)、空の.NET XmlTextReader
オブジェクトが戻されます。
XmlCommandType
= OracleXmlCommandType
.Insert
、OracleXmlCommandType
.Update
またはOracleXmlCommandType
.Delete
CommandText
プロパティの値はXML文書であり、ExecuteXmlReader
は、そのXML文書内の変更をXmlSaveProperties
プロパティで指定された表またはビューに保存します。空の.NET XmlTextReader
オブジェクトが戻されます。
関連項目:
|