AdoSubmitConnection.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 usando o nó XML especificado.
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 objeto que especifica o nó XML a ser convertido em um fragmento SQL.
Retornos
A cláusula WHERE para o 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. O nó de entrada contém colunas (atributos XML) que não estão presentes na fonte de dados à qual estão sendo enviadas.
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 de um controle Button usa o método BuildSQLFromXMLNodes da classe AdoSubmitConnection 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 para enviar dados chamados "Envio de conexão principal" à 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 AdoSubmitConnection from the
// DataConnections collection.
AdoSubmitConnection myAdoSubmitConnection =
(AdoSubmitConnection)(DataConnections["Main connection submit"]);
// Display BuildSQLFromXMLNodes output.
string sqlFromXmlNodes =
myAdoSubmitConnection.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 AdoSubmitConnection from the
' DataConnections collection.
Dim myAdoSubmitConnection As AdoSubmitConnection = _
DirectCast(DataConnections["Main connection submit"], _
AdoSubmitConnection)
' Display BuildSQLFromXMLNodes output.
Dim sqlFromXmlNodes As String =
myAdoSubmitConnection.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 campo = pares de valor. O nó XML que você especifica para o input
parâmetro deve ser descendente do nó dfs:queryFields do formulário. 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')
Você pode adicionar o fragmento de texto de comando SQL à cadeia de comando SQL existente do objeto ADOSubmitConnection 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 only from code running in forms opened in Microsoft InfoPath Filler.