次の方法で共有


AdoSubmitConnection.BuildSqlFromXmlNodes(XPathNavigator) メソッド

定義

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

public:
 abstract System::String ^ BuildSqlFromXmlNodes(System::Xml::XPath::XPathNavigator ^ input);
public abstract string BuildSqlFromXmlNodes (System.Xml.XPath.XPathNavigator input);
abstract member BuildSqlFromXmlNodes : System.Xml.XPath.XPathNavigator -> string
Public MustOverride Function BuildSqlFromXmlNodes (input As XPathNavigator) As String

パラメーター

input
XPathNavigator

XPathNavigator SQL フラグメントに変換する XML ノードを指定する オブジェクト。

戻り値

指定したノードの WHERE 句。

例外

次のいずれかの条件が発生しました:入力ノードから生成された SQL コマンド文字列を解析できません。入力ノードは値のテーブルではありません。入力ノードには、送信先のデータ ソースに存在しない列 (XML 属性) が含まれています。

このメソッドに渡されるパラメーターは null 参照です (Visual Basic では Nothing)。

このメソッドに渡されるパラメーターは無効です。 たとえば、型または形式が正しくありません。

次の例では、Button コントロールのイベント ハンドラーは、AdoSubmitConnection クラスの BuildSQLFromXMLNodes メソッドを使用して、現在のクエリ フィールド値を解析し、メッセージ ボックスに表示します。

この例では、フォーム テンプレートには、SQL Server の Northwind サンプル データベースの Employees テーブルにデータを送信する、"Main connection submit" という名前のデータ接続があるとします。

public void DisplaySQL_Clicked(object sender, ClickedEventArgs e)
{
   // Get the query fields node.
   string queryFieldsXPath = 
      "dfs:myFields/dfs:queryFields/q:Employees";
   XPathNavigator mainDataSourceNav = MainDataSource.CreateNavigator();
   XPathNavigator queryFieldsNav = mainDataSourceNav.SelectSingleNode(
      queryFieldsXPath, NamespaceManager);

   // Create AdoSubmitConnection from the 
   // DataConnections collection.
   AdoSubmitConnection myAdoSubmitConnection = 
      (AdoSubmitConnection)(DataConnections["Main connection submit"]);

   // Display BuildSQLFromXMLNodes output.
   string sqlFromXmlNodes = 
      myAdoSubmitConnection.BuildSqlFromXmlNodes(queryFieldsNav);
   MessageBox.Show(sqlFromXmlNodes);
}
Public Sub DisplaySQL_Clicked(ByVal sender As Object, _
   ByVal e As ClickedEventArgs)
   ' Get the query fields node.
   Dim queryFieldsXPath As String = 
      "dfs:myFields/dfs:queryFields/q:Employees"
   Dim mainDataSourceNav As XPathNavigator  = _
      MainDataSource.CreateNavigator()
   Dim queryFieldsNav As XPathNavigator = _
      mainDataSourceNav.SelectSingleNode( _
      queryFieldsXPath, NamespaceManager)

   ' Create AdoSubmitConnection from the 
   ' DataConnections collection.
   Dim myAdoSubmitConnection As AdoSubmitConnection  = _
      DirectCast(DataConnections["Main connection submit"], _
      AdoSubmitConnection)

   ' Display BuildSQLFromXMLNodes output.
   Dim sqlFromXmlNodes As String  = 
      myAdoSubmitConnection.BuildSqlFromXmlNodes(queryFieldsNav)
   MessageBox.Show(sqlFromXmlNodes)
End Sub

注釈

BuildSQLFromXMLNodes メソッドが生成する SQL のフラグメントは、フィールド = 値ペアの形式の SQL WHERE 句です。 パラメーターに指定 input する XML ノードは、フォームの dfs:queryFields ノードの子孫である必要があります。 たとえば、Northwind データベースの Employees テーブルをクエリするために、Last Name フィールドと First Name フィールドに対するクエリ フィールドに「Davolio」および「Nancy」と入力すると、BuildSQLFromXmlNode メソッドによって返される SQL フラグメントは次のようになります。

("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')

プロパティを使用して、 ADOSubmitConnection オブジェクトの既存の SQL コマンド文字列に SQL コマンド テキスト フラグメントを Command 追加できます。

: パラメーターに渡 input すクエリ フィールド値を含むテーブルの XPath 式を決定するには、[データ ソース] 作業ウィンドウを表示し、queryFields グループを展開し、操作するクエリ フィールドを含むテーブルを右クリックして、[XPath のコピー] をクリックします。

このメンバは、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームだけがアクセスできます。

この型またはメンバーには、Microsoft InfoPath Filler で開いたフォームで実行されるコードからのみアクセスできます。

適用対象