ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) 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 à l'aide du nœud XML spécifié.
public:
System::String ^ BuildSQLFromXMLNodes(Microsoft::Office::Interop::InfoPath::Xml::IXMLDOMNode ^ pXmlNode);
public string BuildSQLFromXMLNodes (Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode pXmlNode);
abstract member BuildSQLFromXMLNodes : Microsoft.Office.Interop.InfoPath.Xml.IXMLDOMNode -> string
Public Function BuildSQLFromXMLNodes (pXmlNode As IXMLDOMNode) As String
Paramètres
- pXmlNode
- IXMLDOMNode
Nœud XML à convertir en fragment SQL.
Retours
Fragment de texte de commande SQL.
Implémente
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 retournées sont filtrées pour 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.<span class="label">BuildSQLFromXMLNodes</span>(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;
}
Remarques
Le fragment de code SQL que la méthode BuildSQLFromXMLNodes génère est une clause SQL WHERE au format field = value. Le nœud XML que vous utilisez pour l’argument pXmlNode
doit être un descendant du dfs:queryFields
nœud ; lorsque vous avez le fragment de texte de commande SQL, vous pouvez l’ajouter à la chaîne de commande SQL existante de l’objet à l’aide ADOAdapterObject de la Command propriété .