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


Выполнение дельты с использованием ADO (SQLXML 4.0)

Следующее приложение на языке Microsoft Visual Basic использует ADO для установки соединения с экземпляром Microsoft SQL Server и выполняет DiffGram. В этом приложении дельты и XSD-схемы хранятся в файле. Приложение загружает DiffGram из заданного файла. Можно использовать любые дельты (и связанные XSD-схемы) описанные в разделе Примеры дельты.

Ниже приводится последовательность действий в образце приложения.

  • Объект conn (ADODB.Connection) устанавливает соединение с выполняющимся экземпляром SQL Server на заданном сервере.

  • Объект cmd (ADODB.Command) выполняется для установленного соединения.

  • В качестве диалекта команды задано значение DBGUID_MSSQLXML.

  • Дельта копируется из файла в поток команды (strmIn).

  • Выходной поток команды установлен в объект StrmOut (ADODB.Stream), который получает все возвращенные данные.

  • При использовании поставщика SQLOLEDB вы по умолчанию получаете функциональность Microsoft SQLXML, предоставляемую библиотекой Sqlxmlx.dll. Чтобы использовать библиотеку Sqlxml4.dll с поставщиком SQLOLEDB, необходимо присвоить свойству SQLXML Version значение SQLXML.4.0 в объекте Connection поставщика SQLOLEDB.

  • Команда (DiffGram) будет выполнена.

Следующий код представляет собой образец приложения.

ПримечаниеПримечание

В коде необходимо задать имя экземпляра SQL Server в строке соединения.

Private Sub Command1_Click()  Dim cmd As New ADODB.Command  Dim conn As New ADODB.Connection  Dim strmOut As New ADODB.Stream  Dim strmIn As New ADODB.Stream        'Open a connection to SQL Server.  conn.Provider = "SQLOLEDB"  conn.Open "server=SqlServerName; database=tempdb; Integrated Security=SSPI; "  conn.Properties("SQLXML Version") = "SQLXML.4.0"  Set cmd.ActiveConnection = conn  strmIn.Open  strmIn.Charset = "UTF-8"  strmIn.LoadFromFile "C:\SomeFilePath\SampleDiffGram.xml"  strmIn.Position = 0  Set cmd.CommandStream = strmIn      strmOut.Open  cmd.Properties("Output Stream").Value = strmOut  cmd.Properties("Output Encoding").Value = "UTF-8"      cmd.Dialect = "{5d531cb2-e6ed-11d2-b252-00c04f681b71}"  cmd.Properties("Mapping Schema") = "C:\SomeFilePath\SampleDiffGram.xml"  cmd.Execute , , adExecuteStream  strmOut.Position = 0  Set cmd = Nothing  strmOut.Charset = "UTF-8"  strmOut.SaveToFile "C:\DropIt.txt", adSaveCreateOverWrite  strmOut.Close  Set strmOut = Nothing  End Sub

Проверка дельты

  1. Скопируйте в папку на компьютере любую дельту и соответствующую XSD-схему из любого примера в разделе Примеры дельты.

  2. Откройте Visual Basic и создайте проект стандартного исполняемого файла.

  3. Добавьте эти ссылки в проект:

    Microsoft ActiveX Data Objects 2.8 Library
    
  4. На панели инструментов нажмите кнопку CommandButton и нарисуйте в форме кнопку.

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

  6. Отредактируйте код, чтобы в нем указывались имена файлов дельты и XSD. Также отредактируйте строку соединения.

  7. Запустите приложение. Результат выполнения зависит от типа дельты.