AdoQueryConnection.BuildSqlFromXmlNodes(XPathNavigator) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Renvoie un fragment de texte de commande SQL analysé à partir du nœud XML spécifié, contenant les valeurs des champs de requête.
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
XPathNavigator qui est positionné au niveau du nœud XML dfs :queryFields qui contient les valeurs de champ de requête à convertir en fragment SQL.
Retours
Clause WHERE générée à partir des valeurs des champs de requête 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 de champ de requête. Le nœud d’entrée contient des colonnes (attributs XML) qui ne sont pas présentes dans la source de données interrogée.
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 suivant, le gestionnaire d'événements d'un contrôle Button fait appel à la méthode BuildSQLFromXMLNodes de la classe ADOQueryConnection pour analyser les valeurs des champs de requête actuelles et les afficher dans un message.
Cet exemple suppose que le modèle de formulaire possède une connexion de données appelée « Main connection » à la table Employees de l'exemple de base de données SQL Server Northwind.
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 AdoQueryConnection from the
// DataConnections collection.
AdoQueryConnection myAdoQueryConnection =
(AdoQueryConnection)(DataConnections["Main connection"]);
// Display BuildSQLFromXMLNodes output.
string sqlFromXmlNodes =
myAdoQueryConnection.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 AdoQueryConnection from the
' DataConnections collection.
Dim myAdoQueryConnection As AdoQueryConnection = _
DirectCast(DataConnections["Main connection"], _
AdoQueryConnection)
' Display BuildSQLFromXMLNodes output.
Dim sqlFromXmlNodes As String =
myAdoQueryConnection.BuildSqlFromXmlNodes(queryFieldsNav)
MessageBox.Show(sqlFromXmlNodes)
End Sub
Remarques
Le fragment de texte SQL généré par la méthode BuildSQLFromXmlNodes est une clause SQL WHERE se présentant sous la forme de paires nomchamp = valeur. S'il existe plusieurs paires, chaque paire est combinée avec un opérateur AND. 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')
Le nœud XML que vous spécifiez pour le input
paramètre doit être un descendant du nœud dfs :queryFields du formulaire. Vous pouvez ajouter le fragment de texte de commande SQL à la chaîne de commande SQL existante de l’objet ADOQueryConnection à 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 accéder à ce type ou à ce membre à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler ou dans un navigateur web.