Partager via


AdoSubmitConnection.BuildSqlFromXmlNodes, méthode

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

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

Syntaxe

'Déclaration
Public MustOverride Function BuildSqlFromXmlNodes ( _
    input As XPathNavigator _
) As String
'Utilisation
Dim instance As AdoSubmitConnection
Dim input As XPathNavigator
Dim returnValue As String

returnValue = instance.BuildSqlFromXmlNodes(input)
public abstract string BuildSqlFromXmlNodes(
    XPathNavigator input
)

Paramètres

Valeur de retour

Type : System.String
Clause WHERE du nœud spécifié.

Exceptions

Exception Condition
InvalidOperationException

L'une des conditions suivantes s'est produite :

  • La chaîne de commande SQL générée par le nœud d'entrée ne peut pas être analysée.

  • Le nœud d'entrée n'est pas une table de valeurs.

  • Le nœud d'entrée contient des colonnes (attributs XML) absentes dans la source de données à laquelle elles sont envoyées.

ArgumentNullException

Le paramètre transmis à cette méthode est une référence NULL (Nothing dans Visual Basic).

ArgumentException

Le paramètre passé à cette méthode n'est pas valide. Par exemple, le type ou le format est incorrect.

Remarques

Le fragment de code SQL que la méthode BuildSQLFromXMLNodes génère est une clause SQL WHERE sous la forme de paires champ = valeur. Le nœud XML spécifié pour le paramètre input doit être un descendant du nœud dfs:queryFields du formulaire. Par exemple, si l'utilisateur a interrogé la table Employés de la base de données Les Comptoirs en entrant Davolio et Nancy dans les champs de requête pour les champs Nom et Prénom, le fragment SQL renvoyé par la méthode BuildSQLFromXmlNode est le suivant :

("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')

Vous pouvez ajouter le fragment de texte de la commande SQL à la chaîne de commande SQL existante de l'objet ADOSubmitConnection à l'aide de la propriété Command.

Notes

Pour déterminer l'expression XPath pour la table qui contient les valeurs des champs de requête à transmettre pour le paramètre input, ouvrez le volet Office Source de données, développez le groupe queryFields, cliquez avec le bouton droit sur la table contenant les champs de requête à utiliser, puis cliquez sur Copier XPath.

Ce membre est accessible uniquement par les formulaires qui s’exécutent dans le même domaine que le formulaire ouvert ou par les formulaires qui disposent d’autorisations valables pour plusieurs domaines.

Ce type ou ce membre est accessible uniquement à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler.

Exemples

Dans l'exemple ci-dessous, le gestionnaire d'événements d'un contrôle Button utilise la méthode BuildSQLFromXMLNodes de la classe AdoSubmitConnection pour analyser les valeurs actuelles des champs de requête et les afficher dans une boîte de message.

Cet exemple part du principe que le modèle de formulaire contient une connexion de données permettant d'envoyer des données (« Connexion principale d'envoi ») à la table Employés de l'exemple de base de données SQL Server Les Comptoirs.

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 AdoSubmitConnection from the 
   // DataConnections collection.
   AdoSubmitConnection myAdoSubmitConnection = 
      (AdoSubmitConnection)(DataConnections["Main connection submit"]);
   
   // Display BuildSQLFromXMLNodes output.
   string sqlFromXmlNodes = 
      myAdoSubmitConnection.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 AdoSubmitConnection from the 
   ' DataConnections collection.
   Dim myAdoSubmitConnection As AdoSubmitConnection  = _
      DirectCast(DataConnections["Main connection submit"], _
      AdoSubmitConnection)
   
   ' Display BuildSQLFromXMLNodes output.
   Dim sqlFromXmlNodes As String  = 
      myAdoSubmitConnection.BuildSqlFromXmlNodes(queryFieldsNav)
   MessageBox.Show(sqlFromXmlNodes)
End Sub

Voir aussi

Référence

AdoSubmitConnection Classe

AdoSubmitConnection, membres

Microsoft.Office.InfoPath, espace de noms