Freigeben über


AdoSubmitConnection.BuildSqlFromXmlNodes(XPathNavigator) Methode

Definition

Gibt ein SQL-Befehlstextfragment zurück, das den angegebenen XML-Knoten verwendet.

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

Parameter

input
XPathNavigator

Ein XPathNavigator -Objekt, das den XML-Knoten angibt, der in ein SQL-Fragment konvertiert werden soll.

Gibt zurück

Die WHERE-Klausel für den angegebenen Knoten.

Ausnahmen

Eine der folgenden Bedingungen ist aufgetreten:Die vom Eingabeknoten generierte SQL-Befehlszeichenfolge kann nicht analysiert werden. Der Eingabeknoten ist keine Tabelle mit Werten. Der Eingabeknoten enthält Spalten (XML-Attribute), die in der Datenquelle, an die sie übermittelt werden, nicht vorhanden sind.

Der an diese Methode übergebene Parameter ist ein NULL-Verweis (Nothing in Visual Basic).

Der an diese Methode übergebene Parameter ist nicht gültig. Der Parameter weist beispielsweise den falschen Typ oder das falsche Format auf.

Beispiele

Im folgenden Beispiel verwendet der Ereignishandler für ein Steuerelement Button die BuildSQLFromXMLNodes-Methode der AdoSubmitConnection-Klasse, um die aktuellen Abfragefeldwerte zu analysieren und in einem Meldungsfeld anzuzeigen.

In diesem Beispiel wird davon ausgegangen, dass die Formularvorlage über eine Datenverbindung zum Senden von Daten namens "Primäre Verbindung: Absenden" an die Employees-Tabelle in der Northwind-Beispieldatenbank von SQL Server verfügt.

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

Hinweise

Das SQL-Fragment, das von der BuildSQLFromXMLNodes-Methode generiert wird, ist eine WHERE-Klausel in SQL in Form von Feld = Wert-Paaren. Der XML-Knoten, den Sie für den input Parameter angeben, muss ein Nachfolger des Knotens dfs:queryFields des Formulars sein. Wenn der Benutzer beispielsweise eine Abfrage für die Employee-Tabelle der Northwind-Datenbank ausführt und dabei in den Abfragefeldern Davolio und Nancy für die Nachname- und Vorname-Felder eingibt, lautet das von der BuildSQLFromXmlNode-Methode zurückgegebene SQL-Fragment wie folgt:

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

Sie können das Sql-Befehlstextfragment der vorhandenen SQL-Befehlszeichenfolge des ADOSubmitConnection-Objekts mithilfe der Command -Eigenschaft hinzufügen.

Hinweis: Um den XPath-Ausdruck für die Tabelle zu bestimmen, die die Abfragefeldwerte enthält, die für den input Parameter übergeben werden sollen, zeigen Sie den Aufgabenbereich Datenquelle an, erweitern Sie die Gruppe queryFields, klicken Sie mit der rechten Maustaste auf die Tabelle, die die Abfragefelder enthält, mit denen Sie arbeiten möchten, und klicken Sie dann auf XPath kopieren.

Auf dieses Mitglied kann nur mithilfe von Formularen zugegriffen werden, die in der gleichen Domäne wie das derzeit geöffnete Formular ausgeführt werden oder denen domänenübergreifende Berechtigungen zugewiesen wurden.

Auf diesen Typ oder dieses Mitglied kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler geöffnet wurden.

Gilt für: