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
- input
Type : System.Xml.XPath.XPathNavigator
Objet XPathNavigator qui spécifie le nœud XML à convertir en fragment SQL.
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 :
|
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