AdoQueryConnection.BuildSqlFromXmlNodes(XPathNavigator) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna um fragmento de texto de comando SQL analisado do nó XML especificado que contém 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
Um XPathNavigator que é posicionado no nó dfs:queryFields XML que contém os valores do campo de consulta a serem convertidos em um fragmento SQL.
Retornos
Uma cláusula WHERE criada a partir dos valores de campos de consulta no nó especificado.
Exceções
Uma das seguintes condições ocorreu: a cadeia de caracteres de comando SQL gerada a partir do nó de entrada não pode ser analisada. O nó de entrada não é uma tabela de valores de campo de consulta. O nó de entrada contém colunas (atributos XML) que não estão presentes na fonte de dados que está sendo consultada.
O parâmetro passado para esse método é uma referência nula (Nada no Visual Basic).
O parâmetro passado para esse método não é válido. Por exemplo, ele é do tipo ou formato errado.
Exemplos
No exemplo a seguir, o manipulador de eventos para um controle Button usa o método BuildSQLFromXMLNodes da classe ADOQueryConnection para analisar os valores atuais do campo de consulta e exibi-los em uma caixa de mensagens.
Este exemplo pressupõe que o modelo de formulário tenha uma conexão de dados chamada "Conexão principal" com a tabela Funcionários no banco de dados de exemplo SQL Server 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
Comentários
O fragmento de SQL que o método BuildSQLFromXmlNodes gera é uma cláusula SQL WHERE na forma de fieldname = pares de valor. Se houver mais de um par, cada par será combinado com o operador AND. Por exemplo, se o usuário consultasse a tabela Funcionários do banco de dados Northwind inserindo Davolio e Nancy nos campos de consulta para os campos Sobrenome e Nome , o fragmento SQL retornado pelo método BuildSQLFromXmlNode seria:
("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')
O nó XML que você especifica para o input
parâmetro deve ser descendente do nó dfs:queryFields do formulário. Você pode adicionar o fragmento de texto de comando SQL à cadeia de comando SQL existente do objeto ADOQueryConnection usando a Command propriedade.
Observação: para determinar a expressão XPath para a tabela que contém os valores do campo de consulta a serem passados para o input
parâmetro, exiba o painel de tarefas Fonte de Dados, expanda o grupo queryFields, clique com o botão direito do mouse na tabela que contém os campos de consulta com os quais você deseja trabalhar e clique em Copiar XPath.
This member can be accessed only by forms running in the same domain as the currently open form, or by forms that have been granted cross-domain permissions.
This type or member can be accessed from code running in forms opened in Microsoft InfoPath Filler or in a Web browser.