Compartir a través de


AdoQueryConnection.BuildSqlFromXmlNodes(XPathNavigator) Método

Definición

Devuelve un fragmento de texto de comando SQL analizado desde el nodo XML especificado que contiene valores de campos de consulta.

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

Parámetros

input
XPathNavigator

XPathNavigator que se coloca en el nodo XML dfs:queryFields que contiene los valores de campo de consulta que se van a convertir en un fragmento de SQL.

Devoluciones

Cláusula WHERE creada a partir de los valores de campos de consulta del nodo especificado.

Excepciones

Se ha producido una de las condiciones siguientes: no se puede analizar la cadena de comandos SQL generada a partir del nodo de entrada. El nodo de entrada no es una tabla de valores de campo de consulta. El nodo de entrada contiene columnas (atributos XML) que no están presentes en el origen de datos que se está consultando.

El parámetro pasado a este método es una referencia nula (Nothing en Visual Basic).

El parámetro que se ha pasado a este método no es válido. Por ejemplo, es de un tipo o formato no válido.

Ejemplos

En el ejemplo siguiente, el controlador de eventos de un control Button usa el método BuildSQLFromXMLNodes de la clase ADOQueryConnection para analizar los valores de campo de consulta actuales y mostrarlos en un cuadro de mensaje.

En este ejemplo se supone que la plantilla de formulario tiene una conexión de datos denominada "Envío de conexión principal" a la tabla Employees de la base de datos de SQL Server de ejemplo 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

Comentarios

El fragmento de SQL generado por el método BuildSQLFromXmlNodes es una cláusula WHERE de SQL con el formato de un par nombreDeCampo = valor. Si hay más de un par, cada uno se combina con un operador AND. Por ejemplo, si el usuario realizó la consulta en la tabla Employees de la base de datos Northwind introduciendo Davolio y Nancy en los campos de consulta de los campos Apellido y Nombre, el fragmento de SQL devuelto por el método BuildSQLFromXmlNode sería:

("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')

El nodo XML que especifique para el input parámetro debe ser un descendiente del nodo dfs:queryFields del formulario. Puede agregar el fragmento de texto del comando SQL a la cadena de comandos SQL existente del objeto ADOQueryConnection mediante la Command propiedad .

Nota: Para determinar la expresión XPath de la tabla que contiene los valores de campo de consulta que se van a pasar para el input parámetro, muestre el panel de tareas Origen de datos, expanda el grupo queryFields, haga clic con el botón derecho en la tabla que contiene los campos de consulta con los que desea trabajar y, a continuación, haga clic en Copiar XPath.

Únicamente se puede acceder a este miembro con formularios que se ejecuten en el mismo dominio que el formulario que está actualmente abierto o con formularios a los que se hayan concedido permisos entre dominios.

Se puede acceder a este tipo o miembro desde el código que se ejecuta en los formularios abiertos en Microsoft InfoPath Filler o en un explorador web.

Se aplica a