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
Assembly : Microsoft.Office.Interop.InfoPath (dans Microsoft.Office.Interop.InfoPath.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
pXmlNode
Type : Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNodeNœud XML à convertir en fragment SQL.
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 WHERE SQL sous la forme d'un champ = valeur. Le nœud XML que vous utilisez pour l'argument pXmlNode doit être un descendant du nœud dfs:queryFields ; Lorsque 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 .
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;
}