ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) 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-Befehlstextfragment zurück, das den angegebenen XML-Knoten verwendet.
public:
System::String ^ BuildSQLFromXMLNodes(Microsoft::Office::Interop::InfoPath::Xml::IXMLDOMNode ^ pXmlNode);
public string BuildSQLFromXMLNodes (Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode pXmlNode);
abstract member BuildSQLFromXMLNodes : Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode -> string
Public Function BuildSQLFromXMLNodes (pXmlNode As IXMLDOMNode) As String
Parameter
- pXmlNode
- IXMLDOMNode
Der XML-Knoten, der in ein SQL-Fragment konvertiert werden soll.
Gibt zurück
Ein SQL-Befehlstextfragment.
Implementiert
Beispiele
Im folgenden Beispiel wird die BuildSQLFromXMLNodes-Methode verwendet, um die Tabelle "Orders" der Datenbank "Northwind" abzufragen. Die zurückgegebenen Daten werden nach Elementen gefiltert, die größer oder gleich dem Wert von queryFieldNode
sind:
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 '>=', and append the clause to
// the SQL command text.
whereClause = whereClause.Replace(@"=", @">=");
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;
}
Hinweise
Das SQL-Fragment, das von der BuildSQLFromXMLNodes-Methode generiert wird, ist eine SQL WHERE-Klausel im Format field = value. Der XML-Knoten, den Sie für das pXmlNode
Argument verwenden, sollte ein Nachfolger des dfs:queryFields
Knotens sein. Wenn Sie über das SQL-Befehlstextfragment verfügen, können Sie es der vorhandenen SQL-Befehlszeichenfolge des ADOAdapterObject Objekts mithilfe der Command -Eigenschaft hinzufügen.