Freigeben über


AdoSubmitConnection.BuildSqlFromXmlNodes-Methode

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

Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Syntax

'Declaration
Public MustOverride Function BuildSqlFromXmlNodes ( _
    input As XPathNavigator _
) As String
'Usage
Dim instance As AdoSubmitConnection
Dim input As XPathNavigator
Dim returnValue As String

returnValue = instance.BuildSqlFromXmlNodes(input)
public abstract string BuildSqlFromXmlNodes (
    XPathNavigator input
)

Parameter

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

Rückgabewert

Die WHERE-Klausel für den angegebenen Knoten.

Ausnahmen

Ausnahmetyp Bedingung

InvalidOperationException

Eine der folgenden Bedingungen ist aufgetreten:

  • Die aus dem Eingabeknoten generierte SQL-Befehlszeichenfolge kann nicht analysiert werden.

  • Der Eingabeknoten ist keine Wertetabelle.

  • Der Eingabeknoten enthält Spalten (XML-Attribute), die nicht in der Datenquelle vorhanden sind, an die sie gesendet werden.

ArgumentNullException

Der an diese Methode übergebene Parameter ist null.

ArgumentException

Der an diese Methode übergebene Parameter ist ungültig. Er weist z. B. den falschen Typ oder das falsche Format auf.

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 untergeordnetes Element des dfs:queryFields-Knotens des Formulars sein. Wenn der Benutzer z. B. die Employees-Tabelle der Northwind-Datenbank durch Eingabe von Davolio und Nancy in den Abfragefeldern für die Felder Nachname und Vorname eingegeben hat, lautet das von der BuildSQLFromXmlNode-Methode zurückgegebene SQL-Fragment folgendermaßen:

("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

Zeigen Sie den Aufgabenbereich Datenquelle an, erweitern Sie die Gruppe queryFields, klicken Sie mit der rechten Maustaste auf die Tabelle, die die gewünschten Abfragefelder enthält, und klicken Sie dann auf Copy XPath, um den XPath-Ausdruck für die Tabelle zu bestimmen, die die an den input-Parameter zu übergebenden Abfragefelder enthält.

Auf den Member kann nur über Formulare zugegriffen werden, die in derselben Domäne wie das zurzeit geöffnete Formular ausgeführt werden, oder über Formulare, denen domänenübergreifende Berechtigungen erteilt wurden.

Auf diesen Typ oder diesen Member kann nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft Office InfoPath 2007 geöffnet wurden.

Beispiel

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

Siehe auch

Referenz

AdoSubmitConnection-Klasse
AdoSubmitConnection-Member
Microsoft.Office.InfoPath-Namespace