Поделиться через


Использование ADO для выполнения запросов SQLXML 4.0

В предыдущих версиях SQLXML выполнение запросов на основе HTTP поддерживается с помощью виртуальных каталогов IIS SQLXML и фильтра ISAPI SQLXML. В SQLXML 4.0 эти компоненты были удалены, так как аналогичные и перекрывающиеся функции предоставляются собственными веб-службами XML, начиная с SQL Server 2005.

В качестве альтернативы можно выполнять запросы и использовать SQLXML 4.0 с приложениями на основе COM, используя расширения SQLXML для объектов данных ActiveX (ADO), которые впервые появились в компонентах Microsoft Data Access (MDAC) 2.6 и более поздних версий.

В этом разделе показано использование SQLXML и ADO в составе приложения Visual Basic Scripting Edition (VBScript) (скрипта с расширением VBS-файла). В ней приведены начальные процедуры установки, которые помогут вам воссоздать и протестировать примеры запросов в документации ПО SQLXML 4.0.

Создание тестового скрипта SQLXML 4.0

В этой процедуре создается файл VBScript (VBS) Sqlxml4test.vbs, который можно использовать для выполнения запросов SQLXML, используя расширения ADO SQLXML в ADO 2.6 и более поздних версиях.

Создание средства тестирования запросов SQLXML 4.0 с помощью ADO (VBScript).

  1. Скопируйте приведенный ниже код VBScript и вставьте его в текстовый файл. Сохраните файл как 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@@" и замените его именем файла шаблона.

    • Найдите "@@SERVER_NAME@@" и замените его именем экземпляра SQL Server (например, "(local)", если SQL Server работает локально).

    • Найдите "@@DATABASE_NAME@@" и замените его именем базы данных (например, "AdventureWorks2012" или "tempdb").

    Обновите любые другие значения, если упоминаются в конкретных инструкциях, например, вы пытаетесь повторно создать локально на компьютере.

  3. Сохраните файл и закройте его.

  4. Убедитесь, что вы создали дополнительные файлы, такие как шаблоны XML или схемы, которые являются частью примера, который вы пытаетесь повторно создать локально на компьютере. Эти файлы должны находиться в том же каталоге, где сохранен файл тестового скрипта (sqlxml4test.vbs).

  5. Следуйте инструкциям в следующем разделе, чтобы использовать тестовый скрипт SQLXML 4.0.

Использование тестового скрипта SQLXML 4.0

В следующей процедуре описывается использование файлов Sqlxml4test.vbs для тестирования примеров запросов, указанных в этой документации.

Использование средства тестирования запросов SQLXML 4.0

  1. Убедитесь, что установлен собственный клиент SQL Server, как показано ниже.

    1. В меню "Пуск " наведите указатель мыши на параметры и нажмите кнопку "Панель управления".

    2. На панели управления откройте окно "Добавление и удаление программ"

    3. В списке установленных в настоящее время программ убедитесь, что в списке отображается собственный клиент Microsoft SQL Server .

      Замечание

      Если необходимо установить собственный клиент SQL Server, см. раздел "Установка собственного клиента SQL Server".

  2. Убедитесь, что версия MDAC, установленная для клиентского компьютера, — 2.6 или более поздняя. Если вам нужно проверить сведения о версии MDAC, можно использовать средство проверки компонентов MDAC, которое предоставляется как бесплатная загрузка с веб-сайта https://www.microsoft.com/Майкрософт. Дополнительные сведения см. в поле "Проверка компонентов MDAC" на веб-сайте Майкрософт.

  3. Выполните скрипт.

    Файл VBScript можно выполнить в командной строке с помощью Cscript.exe или дважды щелкнув файл Sqlxml4test.vbs, чтобы вызвать узел скрипта Windows (WScript.exe).

    При выполнении скрипт должен отобразить сообщение для оповещения о том, что скрипт может занять несколько минут, прежде чем возвращать и отображать результаты запроса в виде выходных данных скрипта. При появлении выходных данных сравните его содержимое с ожидаемыми результатами для примера.