Выполнение дельты с использованием 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
Проверка дельты
Скопируйте в папку на компьютере любую дельту и соответствующую XSD-схему из любого примера в разделе Примеры дельты.
Откройте Visual Basic и создайте проект стандартного исполняемого файла.
Добавьте эти ссылки в проект:
Microsoft ActiveX Data Objects 2.8 Library
На панели инструментов нажмите кнопку CommandButton и нарисуйте в форме кнопку.
Дважды щелкните кнопку, чтобы изменить ее код, и добавьте код приложения из раздела.
Отредактируйте код, чтобы в нем указывались имена файлов дельты и XSD. Также отредактируйте строку соединения.
Запустите приложение. Результат выполнения зависит от типа дельты.