ADOAdapter2.BuildSQLFromXMLNodes-Methode
Gibt ein SQL-Befehlstextfragment zurück, das den angegebenen XML-Knoten verwendet.
Diese Methode ist nicht CLS-kompatibel.
Namespace: Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly: Microsoft.Office.Interop.InfoPath.SemiTrust (in microsoft.office.interop.infopath.semitrust.dll)
Syntax
'Declaration
<DispIdAttribute(8)> _
Function BuildSQLFromXMLNodes ( _
pXmlNode As IXMLDOMNode _
) As String
'Usage
Dim instance As ADOAdapter2
Dim pXmlNode As IXMLDOMNode
Dim returnValue As String
returnValue = instance.BuildSQLFromXMLNodes(pXmlNode)
[DispIdAttribute(8)]
string BuildSQLFromXMLNodes (
IXMLDOMNode pXmlNode
)
Parameter
- pXmlNode
Der XML-Knoten, der in ein SQL-Fragment konvertiert werden soll.
Rückgabewert
Ein SQL-Befehlstextfragment.
Hinweise
Das SQL-Fragment, das von der BuildSQLFromXMLNodes-Methode geniert wird, ist eine SQL- WHERE-Klausel im Format Feld = Wert. Der XML-Knoten, den Sie für das pXmlNodeArgument verwenden, sollte ein untergeordnetes Element des dfs:queryFields-Knotens sein. Sobald das SQL-Befehlstextfragment generiert wurde, können Sie es mithilfe des ADOAdapterObject-Objekts unter Verwendung der Command-Eigenschaft hinzufügen.
Wichtig: |
---|
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. |
Beispiel
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.BuildSQLFromXMLNodes(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;
}
Siehe auch
Referenz
ADOAdapter2-Schnittstelle
ADOAdapter2-Member
Microsoft.Office.Interop.InfoPath.SemiTrust-Namespace