Partager via


ADOAdapter2.BuildSQLFromXMLNodes - Méthode (IXMLDOMNode)

Renvoie un fragment de texte de commande SQL à l'aide du nœud XML spécifié.

Espace de noms :  Microsoft.Office.Interop.InfoPath.SemiTrust
Assembly :  Microsoft.Office.Interop.InfoPath.SemiTrust (dans Microsoft.Office.Interop.InfoPath.SemiTrust.dll)

Syntaxe

'Déclaration
Function BuildSQLFromXMLNodes ( _
    pXmlNode As IXMLDOMNode _
) As String
'Utilisation
Dim instance As ADOAdapter2
Dim pXmlNode As IXMLDOMNode
Dim returnValue As String

returnValue = instance.BuildSQLFromXMLNodes(pXmlNode)
string BuildSQLFromXMLNodes(
    IXMLDOMNode pXmlNode
)

Paramètres

Valeur renvoyée

Type : System.String
Fragment de texte de commande SQL.

Implémentations

ADOAdapter.BuildSQLFromXMLNodes(IXMLDOMNode)

Remarques

Le fragment de code SQL que la méthode BuildSQLFromXMLNodes génère est une clause SQL WHERE au format field = value. Le nœud XML que vous utilisez pour l'argument pXmlNode doit être un descendant du nœud dfs:queryFields ; une fois que vous avez le fragment de texte de commande SQL, vous pouvez l'ajouter à la chaîne de commande SQL existante de l'objet ADOAdapterObject à l'aide de la propriété Command.

Important

Seuls les formulaires qui s’exécutent dans le même domaine que le formulaire actuellement ouvert ou les formulaires disposant d’autorisations inter-domaines peuvent accéder à ce membre.

Exemples

Dans l'exemple suivant, la méthode BuildSQLFromXMLNodes est utilisée pour interroger la table Commandes de la base de données Les Comptoirs. Les données renvoyées sont filtrées sur les éléments supérieurs ou égaux à la valeur de queryFieldNode :

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;
}

Voir aussi

Référence

ADOAdapter2 interface

ADOAdapter2 - Membres

BuildSQLFromXMLNodes - Surcharge

Microsoft.Office.Interop.InfoPath.SemiTrust - Espace de noms