Partager via


AdoSubmitConnection.BuildSqlFromXmlNodes(XPathNavigator) Méthode

Définition

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

public:
 abstract System::String ^ BuildSqlFromXmlNodes(System::Xml::XPath::XPathNavigator ^ input);
public abstract string BuildSqlFromXmlNodes (System.Xml.XPath.XPathNavigator input);
abstract member BuildSqlFromXmlNodes : System.Xml.XPath.XPathNavigator -> string
Public MustOverride Function BuildSqlFromXmlNodes (input As XPathNavigator) As String

Paramètres

input
XPathNavigator

Objet XPathNavigator qui spécifie le nœud XML à convertir en fragment SQL.

Retours

Clause WHERE du nœud spécifié.

Exceptions

L’une des conditions suivantes s’est produite : la chaîne de commande SQL générée à partir du 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) qui ne sont pas présentes dans la source de données à laquelle elles sont envoyées.

Le paramètre passé à cette méthode est une référence null (Nothing en Visual Basic).

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

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

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 que vous spécifiez pour le input paramètre doit être un descendant du nœud dfs :queryFields du formulaire. Si, par exemple, l'utilisateur interroge la table Employees de la base de données Northwind en indiquant Davolio et Nancy dans les champs de la requête portant sur les champs Last Name et First Name, le fragment de texte SQL renvoyé par la méthode BuildSQLFromXmlNode ressemble à ce qui suit :

("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 Command propriété .

Remarque : Pour déterminer l’expression XPath de la table qui contient les valeurs de champ de requête à passer pour le paramètre, affichez le input volet Office Source de données, développez le groupe queryFields, cliquez avec le bouton droit sur la table qui contient les champs de requête que vous souhaitez utiliser, puis cliquez sur Copier XPath.

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.

Vous pouvez uniquement accéder à ce type ou à ce membre à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler.

S’applique à