次の方法で共有


ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) メソッド

定義

指定した XML ノードを使用して SQL コマンド テキスト フラグメントを返します。

public:
 System::String ^ BuildSQLFromXMLNodes(Microsoft::Office::Interop::InfoPath::Xml::IXMLDOMNode ^ pXmlNode);
public string BuildSQLFromXMLNodes (Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode pXmlNode);
abstract member BuildSQLFromXMLNodes : Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode -> string
Public Function BuildSQLFromXMLNodes (pXmlNode As IXMLDOMNode) As String

パラメーター

pXmlNode
IXMLDOMNode

SQL フラグメントに変換される XML ノード。

戻り値

SQL コマンド文字列フラグメント。

実装

次の例では、BuildSQLFromXMLNodes メソッドを使用して、Northwind データベースの Orders テーブルにクエリを送信しています。 返されるデータは、 の値以上の queryFieldNode項目に対してフィルター処理されます。

private void QueryGreaterThan()
{    
 string oldCommand;
 string whereClause;
 IXMLDOMNode queryFieldNode;
 IXMLDOMNode curQueryFieldAttribute;
 IXMLDOMNamedNodeMap queryFieldAttributes;
 ADOAdapter adapter = (ADOAdapter)thisXDocument.QueryAdapter;

 // Build the WHERE clause from the QueryFields in the form's
 // underlying XML DOM.
 queryFieldNode = thisXDocument.DOM.selectSingleNode("dfs:myFields/dfs:queryFields/q:Orders");
 whereClause = adapter.<span class="label">BuildSQLFromXMLNodes</span>(queryFieldNode);

// The QueryFields are empty.
 if (whereClause == null)
 {
  whereClause = String.Empty;
 }
 // Replace the '=' signs with '&gt;=', and append the clause to 
 // the SQL command text.
 whereClause = whereClause.Replace(@"=", @"&gt;=");
 oldCommand = adapter.Command;

 if (whereClause != "")
 {
  adapter.Command = oldCommand + " where " + whereClause;
 }

 // Clear the QueryFields so the WHERE clause isn't 
 // automatically generated.
 queryFieldAttributes = queryFieldNode.attributes;
 while ((curQueryFieldAttribute = queryFieldAttributes.nextNode()) != null)
 {
  curQueryFieldAttribute.text = "";
 }

  // Perform the query.
 try
 {
  thisXDocument.Query();
 }
 catch (Exception ex)
 {
  thisXDocument.UI.Alert("Failed to query.\n\n" + ex.Message);
 }

 // Reset the command so that subsequent queries are based on 
 // the correct SQL command text string.
 adapter.Command = oldCommand;
}

注釈

BuildSQLFromXMLNodes メソッドが生成する SQL のフラグメントは、フィールド = 値の形式の SQL WHERE 句です。 引数に使用pXmlNodeする XML ノードはノードのdfs:queryFields子孫である必要があります。SQL コマンド テキスト フラグメントがある場合は、 プロパティを使用してCommand、オブジェクトの既存の ADOAdapterObject SQL コマンド文字列に追加できます。

適用対象