Sdílet prostřednictvím


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.

HinweisWichtig:

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