AdoQueryConnection.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 AdoQueryConnection
Dim input As XPathNavigator
Dim returnValue As String

returnValue = instance.BuildSqlFromXmlNodes(input)
public abstract string BuildSqlFromXmlNodes(
    XPathNavigator input
)

매개 변수

반환 값

형식: System.String
지정된 노드에 있는 쿼리 필드 값으로 만든 WHERE 절입니다.

예외

예외 조건
InvalidOperationException

다음과 같은 조건 중 하나가 발생했습니다.

  • 입력 노드에서 생성된 SQL 명령 문자열을 구문 분석할 수 없습니다.

  • 입력 노드가 쿼리 필드 값의 테이블이 아닙니다.

  • 입력 노드가 쿼리되고 있는 데이터 원본에 존재하지 않는 열(XML 특성)을 포함합니다.

ArgumentNullException

이 메서드에 전달된 매개 변수가 Null 참조(Visual Basic의Nothing )입니다.

ArgumentException

이 메서드에 전달된 매개 변수가 유효하지 않습니다. 예를 들면 유형이나 형식이 잘못되었습니다.

주의

BuildSQLFromXmlNodes 메서드가 생성하는 SQL 조각은 fieldname = value 쌍 형식의 SQL WHERE 절입니다. 이러한 쌍이 두 개 이상 있는 경우 각 쌍은 AND 연산자로 결합됩니다. 예를 들어 사용자가 성 및 이름 필드에 대한 쿼리 필드에 Davolio 및 Nancy를 입력하여 Northwind 데이터베이스의 Employees 테이블을 쿼리한 경우 BuildSQLFromXmlNode 메서드가 반환하는 SQL 조각은 다음과 같습니다.

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

input 매개 변수에 대해 지정하는 XML 노드는 양식의 dfs:queryFields 노드에 대한 하위 항목이어야 합니다. Command 속성을 사용하여 ADOQueryConnection 개체의 기존 SQL 명령 문자열에 SQL 명령 텍스트 조각을 추가할 수 있습니다.

참고 사항참고 사항

input 매개 변수에 대해 전달할 쿼리 필드 값을 포함하는 테이블에 대한 XPath 식을 결정하려면 데이터 원본 작업창을 표시하고, queryFields 그룹을 확장하고, 작업할 쿼리 필드를 포함하는 테이블을 마우스 오른쪽 단추로 클릭한 다음 XPath 복사를 클릭합니다.

이 멤버는 현재 열려 있는 양식과 같은 도메인에서 실행하는 양식 또는 도메인 간 권한이 부여된 양식에서만 액세스할 수 있습니다.

이 형식 또는 멤버는 Microsoft InfoPath Filer 또는 웹 브라우저에서 연 양식에서 실행되는 코드에서 액세스할 수 있습니다.

다음 예제에서는 Button 컨트롤에 대한 이벤트 처리기가 ADOQueryConnection 클래스의 BuildSQLFromXMLNodes 메서드를 사용하여 현재 쿼리 필드 값을 구문 분석한 후 메시지 상자에 표시합니다.

이 예제에서는 양식 서식 파일이 SQL Server Northwind 예제 데이터베이스의 Employees 테이블에 대해 "기본 연결"이라는 데이터 연결을 가진 것으로 가정합니다.

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

참고 항목

참조

AdoQueryConnection 클래스

AdoQueryConnection 멤버

Microsoft.Office.InfoPath 네임스페이스