Language

ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) メソッド

定義

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

public:
 System::String ^ BuildSQLFromXMLNodes(Microsoft::Office::Interop::InfoPath::SemiTrust::IXMLDOMNode ^ pXmlNode);
public string BuildSQLFromXMLNodes(Microsoft.Office.Interop.InfoPath.SemiTrust.IXMLDOMNode pXmlNode);
abstract member BuildSQLFromXMLNodes : Microsoft.Office.Interop.InfoPath.SemiTrust.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 コマンド文字列に追加できます。

重要: このメンバーにアクセスできるのは、現在開いているフォームと同じドメインで実行されているフォーム、またはクロスドメインアクセス許可が付与されているフォームのみです。

適用対象