OracleXmlSaveProperties
オブジェクトは、XmlCommandType
プロパティがInsert
、Update
またはDelete
である場合に、OracleCommand
クラスにより使用されるXMLプロパティを表します。
クラスの継承
System.Object
System.OracleXmlSaveProperties
宣言
public sealed class OracleXmlSaveProperties : ICloneable
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
備考
OracleXmlSaveProperties
は、OracleCommand
クラスのXmlSaveProperties
プロパティを使用してアクセスおよび変更できます。各OracleCommand
オブジェクトには、XmlSaveProperties
プロパティに、OracleXmlSaveProperties
クラスの独自のインスタンスが含まれます。
OracleXmlSaveProperties
の新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。 OracleXmlSaveProperties
.Clone()
メソッドを使用して、 OracleXmlSaveProperties
インスタンスのコピーを取得します。
例
このサンプルでは、XML文書を使用して、リレーショナル表またはビューに対して挿入、更新および削除を実行する方法を示しています。
// C# /* -- If HR account is being locked, you need to log on as a DBA -- to unlock the account first. Unlock a locked users account: ALTER USER hr ACCOUNT UNLOCK; */ using System; using Oracle.DataAccess.Client; class OracleXmlSavePropertiesSample { static void Main() { string[] KeyColumnsList = null; string[] UpdateColumnsList = null; int rows = 0; // Create the connection. string constr = "User Id=hr;Password=hr;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); // Create the command. OracleCommand cmd = new OracleCommand("", con); // Set the XML command type to insert. cmd.XmlCommandType = OracleXmlCommandType.Insert; // Set the XML document. cmd.CommandText = "<?xml version=\"1.0\"?>\n" + "<ROWSET>\n" + " <MYROW num = \"1\">\n" + " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" + " <LAST_NAME>Smith</LAST_NAME>\n" + " <EMAIL>Smith@Oracle.com</EMAIL>\n" + " <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" + " <JOB_ID>IT_PROG</JOB_ID>\n" + " </MYROW>\n" + " <MYROW num = \"2\">\n" + " <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" + " <LAST_NAME>Barney</LAST_NAME>\n" + " <EMAIL>Barney@Oracle.com</EMAIL>\n" + " <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" + " <JOB_ID>IT_PROG</JOB_ID>\n" + " </MYROW>\n" + "</ROWSET>\n"; // Set the XML save properties. KeyColumnsList = new string[1]; KeyColumnsList[0] = "EMPLOYEE_ID"; UpdateColumnsList = new string[5]; UpdateColumnsList[0] = "EMPLOYEE_ID"; UpdateColumnsList[1] = "LAST_NAME"; UpdateColumnsList[2] = "EMAIL"; UpdateColumnsList[3] = "HIRE_DATE"; UpdateColumnsList[4] = "JOB_ID"; cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList; cmd.XmlSaveProperties.RowTag = "MYROW"; cmd.XmlSaveProperties.Table = "employees"; cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList; cmd.XmlSaveProperties.Xslt = null; cmd.XmlSaveProperties.XsltParams = null; // Do the inserts. rows = cmd.ExecuteNonQuery(); Console.WriteLine("rows: " + rows); // Set the XML command type to update. cmd.XmlCommandType = OracleXmlCommandType.Update; // Set the XML document. cmd.CommandText = "<?xml version=\"1.0\"?>\n" + "<ROWSET>\n" + " <MYROW num = \"1\">\n" + " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" + " <LAST_NAME>Adams</LAST_NAME>\n" + " </MYROW>\n" + "</ROWSET>\n"; // Set the XML save properties. KeyColumnsList = new string[1]; KeyColumnsList[0] = "EMPLOYEE_ID"; UpdateColumnsList = new string[1]; UpdateColumnsList[0] = "LAST_NAME"; cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList; cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList; rows = cmd.ExecuteNonQuery(); Console.WriteLine("rows: " + rows); // Set the XML command type to delete. cmd.XmlCommandType = OracleXmlCommandType.Delete; // Set the XML document. cmd.CommandText = "<?xml version=\"1.0\"?>\n" + "<ROWSET>\n" + " <MYROW num = \"1\">\n" + " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" + " </MYROW>\n" + " <MYROW num = \"2\">\n" + " <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" + " </MYROW>\n" + "</ROWSET>\n"; // Set the XML save properties. KeyColumnsList = new string[1]; KeyColumnsList[0] = "EMPLOYEE_ID"; cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList; cmd.XmlSaveProperties.UpdateColumnsList = null; // Do the deletes. rows = cmd.ExecuteNonQuery(); Console.WriteLine("rows: " + rows); // Clean up. cmd.Dispose(); con.Close(); con.Dispose(); } }
要件
ネームスペース: Oracle.DataAccess.Client
アセンブリ: Oracle.DataAccess.dll
Microsoft .NET Frameworkバージョン1.0以降
次の表にOracleXmlSaveProperties
メンバーをリストします。
OracleXmlSavePropertiesコンストラクタ
OracleXmlSaveProperties
コンストラクタを、表6-7にリストします。
OracleXmlSavePropertiesプロパティ
OracleXmlSaveProperties
プロパティを、表6-8にリストします。
表6-8 OracleXmlSavePropertiesプロパティ
名前 | 説明 |
---|---|
XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。 |
|
XMLドキュメント内のデータの行を識別するXML要素の値を指定します。 |
|
変更を保存する表またはビューの名前を指定します。 |
|
更新または挿入する列のリストを指定します。 |
|
XSLTを使用したXML変換に使用するXSLドキュメントを指定します。 |
|
Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。 |
OracleXmlSavePropertiesパブリック・メソッド
OracleXmlSaveProperties
パブリック・メソッドを、表6-9にリストします。
OracleXmlSaveProperties
コンストラクタでは、OracleXmlSaveProperties
クラスの新規インスタンスをインスタンス化します。
宣言
// C# public OracleXmlSaveProperties;
OracleXmlSaveProperties
プロパティを、表6-10にリストします。
表6-10 OracleXmlSavePropertiesプロパティ
名前 | 説明 |
---|---|
XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。 |
|
XMLドキュメント内のデータの行を識別するXML要素の値を指定します。 |
|
変更を保存する表またはビューの名前を指定します。 |
|
更新または挿入する列のリストを指定します。 |
|
XSLTを使用したXML変換に使用するXSLドキュメントを指定します。 |
|
Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。 |
このプロパティは、XMLドキュメントを使用して更新または削除する既存の行を検出するためのキーとして使用される列のリストを指定します。
宣言
// C# public string[] KeyColumnsList {get; set;}
プロパティ値
列のリスト。
備考
デフォルト値はNULLです。
最初のNULL値(ある場合)はリストを停止します。
XMLCommandType
プロパティ値を持つKeyColumnsList
の使用方法
Insert
: KeyColumnsList
は無視され、NULLになります。
Update
: KeyColumnsList
を指定する必要があります。これは更新する行を検索するために使用する列を識別します。
Delete
: KeyColumnsList
がNULLの場合、XMLドキュメント内の各行要素の列値すべてを使用して、削除する行を検出します。それ以外の場合、KeyColumnsList
は削除する行を識別するために使用する列を指定します。
このプロパティでは、XMLドキュメント内のデータの行を識別するXML要素の値を指定します。
宣言
// C# public string RowTag {get; set;}
プロパティ値
XML要素名。
備考
デフォルト値はROW
です。
XMLドキュメント内の各要素は、表またはビュー内の行を識別します。
RowTag
が""
またはnull
に設定されている場合、XMLドキュメント内に行タグは使用されません。この場合、XMLドキュメントに含まれるのは1行のみと仮定されます。
このプロパティでは変更を保存する表またはビューの名前を指定します。
宣言
// C# public string Table {get; set;}
プロパティ値
表の名前。
備考
デフォルト値はNULL
です。
このプロパティには、有効な表またはビュー名を設定する必要があります。
このプロパティでは更新または挿入する列のリストを指定します。
宣言
// C# public string[] UpdateColumnsList {get; set;}
プロパティ値
列のリスト。
備考
デフォルト値はNULLです。
最初のNULL値(ある場合)はリストを停止します。
XMLCommandType
プロパティ値を持つUpdateColumnList
の使用方法:
Insert
: UpdateColumnList
は、新しい行が作成された場合に値を割り当てられる列を示します。UpdateColumnList
がNULLの場合、すべての列に値が割り当てられます。列がUpdateColumnList
にあり、値がXMLファイル内に割り当てられていない場合、NULL
が使用されます。列がUpdateColumnList
にない場合、その列のデフォルト値が使用されます。
Update
: UpdateColumnList
では、XMLドキュメント内の各行のデータに対して変更する列を指定します。UpdateColumnList
がNULLの場合、XMLドキュメント内の各XML要素のすべての値を使用して列を変更します。
Delete
: UpdateColumnsList
がNULLの場合は無視されます。
このプロパティでは、XSLTを使用するXML変換に使用するXSLドキュメントを指定します。
宣言
// C# public string Xslt {get; set;}
プロパティ値
XML変換に使用するXSLドキュメント。
備考
デフォルト = null
所定のXMLドキュメントのXSLT変換にはXSLドキュメントを使用します。変換したXMLドキュメントを使用して、表またはビューに加えられた変更を保存します。
このプロパティでは、Xslt
プロパティ内で指定するXSLTドキュメントのパラメータを指定します。
宣言
// C# public string XsltParams {get; set;}
プロパティ値
XSLTドキュメントのパラメータ。
備考
デフォルトはnull
です。
このプロパティは、"param1=value1; param2=value2;...
"形式の"name=value
"ペアをセミコロンで区切った文字列です。
OracleXmlSaveProperties
パブリック・メソッドを、表6-11にリストします。
このメソッドでは、OracleXmlSaveProperties
オブジェクトのコピーを作成します。
宣言
// C# public object Clone();
戻り値
OracleXmlSaveProperties
オブジェクト
実装
ICloneable