AdoSubmitConnection.BuildSqlFromXmlNodes メソッド
指定した XML ノードを使用して SQL コマンド テキスト フラグメントを返します。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (microsoft.office.infopath.dll 内)
構文
'宣言
Public MustOverride Function BuildSqlFromXmlNodes ( _
input As XPathNavigator _
) As String
'使用
Dim instance As AdoSubmitConnection
Dim input As XPathNavigator
Dim returnValue As String
returnValue = instance.BuildSqlFromXmlNodes(input)
public abstract string BuildSqlFromXmlNodes (
XPathNavigator input
)
パラメータ
- input
SQL フラグメントに変換する XML ノードを示す XPathNavigator オブジェクト。
戻り値
指定したノードの WHERE 句。
例外処理
例外の種類 | 条件 |
---|---|
次の条件の 1 つが発生しました。
|
|
このメソッドに渡されたパラメータは null です。 |
|
このメソッドに渡されたパラメータは有効ではありません。たとえば、型または形式が正しくありません。 |
コメント
BuildSQLFromXMLNodes メソッドが生成する SQL のフラグメントでは、フィールド = 値のペアの形式で SQL WHERE 句が生成されます。input パラメータに指定する XML ノードは、フォームの dfs:queryFields ノードの子孫である必要があります。たとえば、ユーザーが Last Name フィールドおよび First Name フィールドのクエリ フィールドに「Davolio」および「Nancy」と入力して Northwind データベースの Employees テーブルをクエリした場合、BuildSQLFromXmlNode メソッドで返される SQL フラグメントは次のようになります。
("Employees"."LastName"='Davolio' AND "Employees"."FirstName"='Nancy')
Command プロパティを使用して、ADOSubmitConnection オブジェクトの既存の SQL コマンド文字列に SQL コマンド テキストのフラグメントを追加できます。
メモ : |
---|
input パラメータに渡すクエリ フィールド値を含むテーブルの XPath 式を判断するには、[データ ソース] 作業ウィンドウを表示し、[queryFields] グループを展開します。次に、操作するクエリ フィールドが含まれているテーブルを右クリックし、[Copy XPath] をクリックします。 |
このメンバは、現在開いているフォームと同じドメイン内で実行されているフォーム、またはドメインを越えたアクセス許可を付与されているフォームだけがアクセスできます。
この型またはメンバは、Microsoft Office InfoPath 2007 で開いているフォームで実行されているコードからのみアクセスできます。
例
次の例では、[ボタン] コントロールのイベント ハンドラは AdoSubmitConnection クラスの BuildSQLFromXMLNodes メソッドを使用して、現在のクエリ フィールド値を解析し、その値をメッセージ ボックスに表示します。
この例では、フォーム テンプレートには、SQL Server の Northwind サンプル データベースの Employees テーブルにデータを送信する、"Main connection submit" という名前のデータ接続があるとします。
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
関連項目
参照
AdoSubmitConnection クラス
AdoSubmitConnection のメンバ
Microsoft.Office.InfoPath 名前空間