| Oracle® Data Provider for .NET開発者ガイド リリース9.2.0.4 部品番号 B13807-01 |
|
Oracle.DataAccess.Clientネームスペース、23/30
OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsert、UpdateまたはDeleteの場合に、OracleCommandクラスで使用されるXMLプロパティを表します。
Object
OracleXmlSaveProperties
public sealed class OracleXmlSaveProperties : ICloneable
インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。
OracleXmlSavePropertiesは、OracleCommandクラスのXmlSavePropertiesプロパティを使用してアクセスし、変更できます。各OracleCommandオブジェクトには、それぞれのOracleXmlSavePropertiesクラスのインスタンスがXmlSavePropertiesプロパティにあります。
デフォルトのコンストラクタを使用して、OracleXmlSavePropertiesの新規インスタンスを取得します。OracleXmlSaveProperties.Clone()メソッドを使用して、OracleXmlSavePropertiesインスタンスのコピーを取得します。
この例では、XML文書を使用して、リレーショナル表またはビューに対して挿入、更新および削除を実行する方法を説明しています。
// C# string[] KeyColumnsList = null; string[] UpdateColumnsList = null; int rows = 0; // Create the connection. string constr = "User Id=hr;Password=hr;Data Source=orcl"; OracleConnection conn = new OracleConnection(constr); conn.Open(); // Create the command. OracleCommand cmd = new OracleCommand("", conn); // 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>1/1/2003 0:0:0</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>1/1/2003 0:0:0</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; // Do the updates. 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(); conn.Close(); conn.Dispose();
ネームスペース: Oracle.DataAccess.Client
アセンブリ: Oracle.DataAccess.dll
OracleXmlSavePropertiesのメンバーを次の表に示します。
OracleXmlSavePropertiesのコンストラクタを表4-123に示します。
| コンストラクタ | 説明 |
|---|---|
|
OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します。 |
OracleXmlSavePropertiesのプロパティを表4-124に示します。
OracleXmlSavePropertiesのpublicメソッドを表4-125に示します。
| 名前 | 説明 |
|---|---|
|
|
OracleXmlSavePropertiesのコンストラクタは、OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します。
// C# public OracleXmlSaveProperties;
OracleXmlSavePropertiesのプロパティを表4-126に示します。
このプロパティは、XML文書を使用して、更新または削除のために既存の行を検索するキーとして使用する列のリストを指定します。
// C# public string[] KeyColumnsList {get; set;}
コラムのリスト
デフォルト値はnullです。
最初のnull値(ある場合)でリストは終わります。
XMLCommandTypeプロパティ値によるKeyColumnsListの使用方法は、次のとおりです。
Insert: KeyColumnsListは無視され、nullをとることができます。
Update: KeyColumnsListを指定する必要があります。これにより、更新する行の検索に使用する列を識別します。
Delete: KeyColumnsListがnullの場合、XML文書における各行要素のすべての列値が、削除する行の検索に使用されます。nullでない場合、KeyColumnsListは、削除する行の識別に使用される列を指定します。
このプロパティは、XML文書でデータの行を識別するXML要素の値を指定します。
// C# public string RowTag {get; set;}
XML要素名
デフォルト値はROWです。
XML文書の各要素は、表またはビュー内の1行を識別します。
RowTagが""またはnullに設定されている場合、XML文書内で行タグは使用されません。この場合、XML文書には1行しか含まれていないものと考えられます。
このプロパティは、変更が保存される表またはビューの名前を指定します。
// C# public string Table {get; set;}
表名
デフォルト値はnullです。
プロパティは、有効な表またはビュー名に設定する必要があります。
このプロパティは、更新または挿入する列のリストを指定します。
// C# public string[] UpdateColumnsList {get; set;}
コラムのリスト
デフォルト値はnullです。
最初のnull値(ある場合)でリストは終わります。
XMLCommandTypetプロパティ値による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です。
XSL文書が、指定されたXML文書のXSLT変換に使用されます。変換されたXML文書は、表またはビューに変更を保存するために使用されます。
このプロパティは、Xsltプロパティで指定されたXSLT文書のパラメータを指定します。
// C# public string XsltParams {get; set;}
XSLT文書のパラメータ
デフォルトはnullです。
このプロパティは、"param1=value1; param2=value2; ..."の形式の"name=value"のペアとしてセミコロンで区切られた文字列です。
OracleXmlSavePropertiesのpublicメソッドを表4-127に示します。
| 名前 | 説明 |
|---|---|
|
|
このメソッドは、OracleXmlSavePropertiesオブジェクトのコピーを作成します。
// C# public object Clone();
OracleXmlSavePropertiesオブジェクト
ICloneable
Oracle Data Provider for .NETで提供されている列挙体は、次のとおりです。
|
|
![]() Copyright © 2002, 2003 Oracle Corporation. All Rights Reserved. |
|