Поделиться через


AdoSubmitConnection.BuildSqlFromXmlNodes(XPathNavigator) Метод

Определение

Возвращает фрагмент текста команды SQL с использованием указанного узла XML.

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

Параметры

input
XPathNavigator

Объект XPathNavigator , указывающий XML-узел для преобразования в фрагмент SQL.

Возвращаемое значение

Предложение WHERE для указанного узла.

Исключения

Произошло одно из следующих условий: не удается проанализировать командную строку SQL, созданную из входного узла. Входной узел не является таблицей значений. Входной узел содержит столбцы (XML-атрибуты), которые отсутствуют в источнике данных, в который они отправляются.

Параметр, передаваемый этому методу, является пустой ссылкой (Nothing в Visual Basic).

Этому методу передан недопустимый параметр. Например, неправильный тип или формат.

Примеры

В следующем примере обработчик события элемента управления Button использует метод BuildSQLFromXMLNodes класса AdoSubmitConnection для синтаксического анализа текущих значений полей запроса и отображения их в окне сообщения.

В этом примере предполагается, что шаблон формы содержит подключение данных "Отправка по основному подключению" для отправки данных в таблицу Employees в образце базы данных Northwind SQL Server.

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

Комментарии

Фрагмент SQL, который создает метод BuildSQLFromXMLNodes, является предложением WHERE SQL в форме пар поле = значение. Узел XML, указанный input для параметра, должен быть потомком узла dfs:queryFields формы. Например, если пользователь запросил таблицу Employees базы данных Northwind, введя Davolio и Nancy в поля запроса полей Фамилия и Имя, фрагмент SQL, возвращенный методом BuildSQLFromXmlNode, будет следующим:

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

Фрагмент текста команды SQL можно добавить в существующую командную строку SQL объекта ADOSubmitConnection с помощью Command свойства .

Примечание. Чтобы определить выражение XPath для таблицы, содержащей значения полей запроса, передаваемые для input параметра, откройте область задач Источник данных, разверните группу queryFields, щелкните правой кнопкой мыши таблицу, содержащую поля запроса, с которыми вы хотите работать, и выберите команду Копировать XPath.

Доступ к этому элементу предоставляется только формам, работающим в том же домене, что и текущая открытая форма, а также формам с междоменными правами доступа.

Доступ к этому типу или элементу предоставляется только из кода, выполняющегося в формах, открытых в Microsoft InfoPath Filler.

Применяется к