ADO를 사용하여 SQLXML 4.0 쿼리 실행

적용 대상:SQL ServerAzure SQL Database

이전 버전의 SQLXML에서는 SQLXML IIS 가상 디렉터리 및 SQLXML ISAPI 필터를 사용하여 HTTP 기반 쿼리 실행을 지원했습니다. SQLXML 4.0에서는 SQL Server 2005(9.x)부터 네이티브 XML 웹 서비스와 유사하고 겹치는 기능이 제공됨에 따라 이러한 구성 요소가 제거되었습니다.

또는 MDAC(Microsoft Data Access Components) 2.6 이상에서 처음 도입된 ADO(ActiveX Data Objects)에 SQLXML 확장을 활용하여 쿼리를 실행하고 COM 기반 애플리케이션에서 SQLXML 4.0을 사용할 수 있습니다.

이 항목에서는 VBScript(Visual Basic Scripting Edition) 애플리케이션(.vbs 파일 이름 확장명을 가진 스크립트)의 일부로 SQLXML 및 ADO를 사용하는 방법을 보여 줍니다. SQLXML 4.0 설명서에서 쿼리 샘플을 다시 만들고 테스트하는 데 도움이 되는 초기 설정 절차를 제공합니다.

SQLXML 4.0 테스트 스크립트 만들기

이 절차에서는 ADO 2.6 이상의 SQLXML ADO 확장을 이용하여 SQLXML 쿼리를 실행하는 데 사용할 수 있는 VBScript(.vbs) 파일인 Sqlxml4test.vbs를 만듭니다.

ADO(VBScript)를 사용하여 SQLXML 4.0 쿼리 테스터를 만들려면

  1. 아래 코드를 복사하여 텍스트 파일에 붙여넣습니다. 파일을 Sqlxml4test.vbs로 저장합니다.

    WScript.Echo "Query process may take a few seconds to complete. Please be patient."  
    
    ' Note that for SQL Server Native Client to be used as the data provider,  
    ' it needs to be installed on the client computer first. Also, SQLXML extensions   
    ' for ADO are used and available in MDAC 2.6 or later.  
    
    'Set script variables.  
    inputFile = "@@FILE_NAME@@"  
    strServer = "@@SERVER_NAME@@"  
    strDatabase = "@@DATABASE_NAME@@"  
    dbGuid = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"  
    
    ' Establish ADO connection to SQL Server and   
    ' create an instance of the ADO Command object.  
    Set conn = CreateObject("ADODB.Connection")  
    Set cmd = CreateObject("ADODB.Command")  
    conn.Open "Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI11;Server=" & strServer & _  
              ";Database=" & strDatabase & ";Integrated Security=SSPI"  
    Set cmd.ActiveConnection = conn  
    
    ' Create the input stream as an instance of the ADO Stream object.  
    Set inStream = CreateObject("ADODB.Stream")  
    inStream.Open  
    inStream.Charset = "utf-8"  
    inStream.LoadFromFile inputFile  
    
    ' Set ADO Command instance to use input stream.  
    Set cmd.CommandStream = inStream  
    
    ' Set the command dialect.  
    cmd.Dialect = dbGuid  
    
    ' Set a second ADO Stream instance for use as a results stream.   
    Set outStream = CreateObject("ADODB.Stream")  
    outStream.Open  
    
    ' Set dynamic properties used by the SQLXML ADO command instance.   
    cmd.Properties("XML Root").Value = "ROOT"  
    cmd.Properties("Output Encoding").Value = "UTF-8"  
    
    ' Connect the results stream to the command instance and execute the command.  
    cmd.Properties("Output Stream").Value = outStream  
    cmd.Execute , , 1024  
    
    ' Echo cropped/partial results to console.  
    WScript.Echo Left(outStream.ReadText, 1023)  
    
    inStream.Close  
    outStream.Close  
    
  2. 테스트하려는 예제와 테스트 환경에 대해 다음 스크립트 값을 업데이트합니다.

    • 찾아 @@FILE_NAME@@ 서 템플릿 파일의 이름으로 바꿉다.

    • SQL Server 인스턴스를 찾아 @@SERVER_NAME@@ 서 SQL Server 인스턴스의 이름으로 바꿉니다(예 (local) : SQL Server가 로컬로 실행 중인 경우).

    • "@@DATABASE_NAME@@"를 찾아 데이터베이스의 이름(예: 또는 AdventureWorks2022tempdb)으로 바꿉니다.

    컴퓨터에 로컬로 다시 만들려는 예제에 대한 특정 지침에 명시된 경우 다른 값을 업데이트합니다.

  3. 파일을 저장하고 닫습니다.

  4. 컴퓨터에 로컬로 다시 만들려는 예제에 포함되는 XML 템플릿 또는 스키마와 같은 추가 파일을 만들었는지 확인합니다. 이러한 파일은 테스트 스크립트 파일(Sqlxml4test.vbs)을 저장한 디렉터리에 있어야 합니다.

  5. SQLXML 4.0 테스트 스크립트를 사용하는 방법에 대한 다음 섹션의 지침을 따릅니다.

SQLXML 4.0 테스트 스크립트 사용

다음 절차에서는 Sqlxml4test.vbs 파일을 사용하여 이 설명서에 제공된 예제 쿼리를 테스트하는 방법을 설명합니다.

SQLXML 4.0 쿼리 테스터를 사용하려면

  1. 다음과 같이 SQL Server Native Client가 설치되어 있는지 확인합니다.

    1. 시작 메뉴에서 설정을 가리킨 다음 제어판을 클릭합니다.

    2. 제어판 에서 프로그램 추가 또는 제거 열기

    3. 현재 설치된 프로그램 목록에서 Microsoft SQL Server Native Client목록에 표시되는지 확인합니다.

      참고 항목

      SQL Server Native Client를 설치해야 하는 경우 SQL Server Native Client 설치를 참조 하세요.

  2. 클라이언트 컴퓨터에 대해 설치된 MDAC 버전이 2.6 이상인지 확인합니다. MDAC 버전 정보를 확인해야 하는 경우 Microsoft 웹 사이트에서 http://www.microsoft.com무료로 다운로드할 수 있는 MDAC 구성 요소 검사 도구를 사용할 수 있습니다. 자세한 내용은 Microsoft 웹 사이트에서 "MDAC 구성 요소 검사기"를 검색합니다.

  3. 스크립트를 실행합니다.

    Cscript.exe를 사용하여 명령줄에서 또는 Sqlxml4test.vbs 파일을 두 번 클릭하여 Windows 스크립트 호스트(WScript.exe)를 호출하여 VBScript 파일을 실행할 수 있습니다.

    실행될 때 스크립트는 쿼리 결과를 스크립트 출력으로 반환하고 표시하기 전에 스크립트를 실행하는 데 몇 분 정도 걸릴 수 있음을 알리는 메시지를 표시해야 합니다. 출력이 나타나면 해당 내용을 샘플의 예상 결과와 비교합니다.