AdoQueryConnection.BuildSqlFromXmlNodes(XPathNavigator) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt ein SQL-Befehltextfragment zurück, das vom angegebenen XML-Knoten, das die Abfragefeldwerte enthält, analysiert wurde.
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 , das am XML-Knoten dfs:queryFields positioniert ist, der die Abfragefeldwerte enthält, die in ein SQL-Fragment konvertiert werden sollen.
Gibt zurück
Eine aus den Abfragefeldwerten im angegebenen Knoten erstellte WHERE-Klausel.
Ausnahmen
Eine der folgenden Bedingungen ist aufgetreten:Die vom Eingabeknoten generierte SQL-Befehlszeichenfolge kann nicht analysiert werden. Der Eingabeknoten ist keine Tabelle mit Abfragefeldwerten. Der Eingabeknoten enthält Spalten (XML-Attribute), die in der abgefragten Datenquelle 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 ADOQueryConnection-Klasse, um die aktuellen Abfragefeldwerte zu analysieren und diese in einem Meldungsfeld anzuzeigen.
Bei diesem Beispiel wird davon ausgegangen, dass die Formularvorlage in der Employee-Tabelle der Northwind-Beispieldatenbank von SQL Server über die Datenverbindung "Primäre Verbindung" 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 AdoQueryConnection from the
// DataConnections collection.
AdoQueryConnection myAdoQueryConnection =
(AdoQueryConnection)(DataConnections["Main connection"]);
// Display BuildSQLFromXMLNodes output.
string sqlFromXmlNodes =
myAdoQueryConnection.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 AdoQueryConnection from the
' DataConnections collection.
Dim myAdoQueryConnection As AdoQueryConnection = _
DirectCast(DataConnections["Main connection"], _
AdoQueryConnection)
' Display BuildSQLFromXMLNodes output.
Dim sqlFromXmlNodes As String =
myAdoQueryConnection.BuildSqlFromXmlNodes(queryFieldsNav)
MessageBox.Show(sqlFromXmlNodes)
End Sub
Hinweise
Das SQL-Fragment, das die BuildSQLFromXmlNodes-Methode generiert, ist eine SQL WHERE-Klausel in Form von Paaren, bestehend aus Feldname = Wert. Sind mehrere Paare vorhanden, wird jedes Paar mit dem UND-Operator kombiniert. 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')
Der XML-Knoten, den Sie für den input
Parameter angeben, muss ein Nachfolger des Knotens dfs:queryFields des Formulars sein. Sie können das Sql-Befehlstextfragment der vorhandenen SQL-Befehlszeichenfolge des ADOQueryConnection-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 über Code zugegriffen werden, der in Formularen ausgeführt wird, die in Microsoft InfoPath Filler oder in einem Webbrowser geöffnet wurden.