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.