ADOAdapter2.BuildSQLFromXMLNodes(IXMLDOMNode) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 '>=', 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;
}
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 .