Compartir a través de


ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) Método

Definición

Devuelve un comando SQL utilizando el nodo XML especificado.

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

Parámetros

pXmlNode
IXMLDOMNode

Nodo XML que se convertirá en un fragmento de SQL.

Devoluciones

Un fragmento de texto de comando SQL.

Implementaciones

Ejemplos

En el siguiente ejemplo, se utiliza el método BuildSQLFromXMLNodes para consultar la tabla Pedidos de la base de datos Neptuno. Los datos devueltos se filtran para los elementos mayores o iguales que el valor 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 '&gt;=', and append the clause to 
 // the SQL command text.
 whereClause = whereClause.Replace(@"=", @"&gt;=");
 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;
}

Comentarios

El fragmento de SQL generado por el método BuildSQLFromXMLNodes es una cláusula WHERE de SQL con la forma campo = valor. El nodo XML que use para el pXmlNode argumento debe ser un descendiente del dfs:queryFields nodo; cuando tenga el fragmento de texto del comando SQL, puede agregarlo a la cadena de comando SQL existente del ADOAdapterObject objeto mediante la Command propiedad .

Se aplica a