AdoQueryConnection.BuildSqlFromXmlNodes(XPathNavigator) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定されたクエリ フィールド値を含む XML ノードから解析された SQL コマンド テキスト フラグメントを返します。
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 SQL フラグメントに変換するクエリ フィールド値を含む dfs:queryFields XML ノードに配置される 。
戻り値
指定したノードのクエリ フィールド値から作成された WHERE 句。
例外
次のいずれかの条件が発生しました:入力ノードから生成された SQL コマンド文字列を解析できません。入力ノードは、クエリ フィールド値のテーブルではありません。入力ノードには、クエリ対象のデータ ソースに存在しない列 (XML 属性) が含まれています。
このメソッドに渡されるパラメーターは null 参照です (Visual Basic では Nothing)。
このメソッドに渡されるパラメーターは無効です。 たとえば、型または形式が正しくありません。
例
次の例では、Button コントロールのイベント ハンドラーで ADOQueryConnection クラスの BuildSQLFromXMLNodes メソッドを使用して、現在のクエリ フィールド値を解析し、メッセージ ボックスに表示します。
この例では、フォーム テンプレートに、SQL Server Northwind サンプル データベースの Employees テーブルに対する "Main connection" という名前のデータ接続があるものとしています。
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
注釈
BuildSQLFromXmlNodes メソッドが生成する SQL のフラグメントは、フィールド名 = 値ペアの形式の SQL WHERE 句です。 複数のペアがある場合、各ペアは AND 演算子で結合されます。 たとえば、Northwind データベースの Employees テーブルをクエリするために、Last Name フィールドと First Name フィールドに対するクエリ フィールドに「Davolio」および「Nancy」と入力すると、BuildSQLFromXmlNode メソッドによって返される SQL フラグメントは次のようになります。
("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')
パラメーターに指定 input
する XML ノードは、フォームの dfs:queryFields ノードの子孫である必要があります。 プロパティを使用して、 ADOQueryConnection オブジェクトの既存の SQL コマンド文字列に SQL コマンド テキスト フラグメントを Command 追加できます。
注: パラメーターに渡 input
すクエリ フィールド値を含むテーブルの XPath 式を決定するには、[データ ソース] 作業ウィンドウを表示し、queryFields グループを展開し、操作するクエリ フィールドを含むテーブルを右クリックして、[XPath のコピー] をクリックします。
このメンバは、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームだけがアクセスできます。
この型またはメンバーには、Microsoft InfoPath Filler または Web ブラウザーで開いたフォームで実行されるコードからアクセスできます。