使用 ADO 执行 DiffGram (SQLXML 4.0)

此Microsoft Visual Basic 应用程序使用 ADO 与 Microsoft SQL Server 实例建立连接,然后执行 DiffGram。 在此应用程序中,DiffGram 和 XSD 架构存储在文件中。 应用程序从指定文件加载 DiffGram。 可以使用 DiffGram 示例中所述的任何 DiffGram(以及关联的 XSD 架构)。

这是示例应用程序的过程:

  • conn 对象 (ADODB.连接) 与特定服务器上的 SQL Server 正在运行的实例建立连接。

  • cmd 对象(ADODB)。命令)在已建立的连接上执行。

  • 命令方言设置为DBGUID_MSSQLXML。

  • DiffGram 从文件复制到命令流(strmIn)。

  • 命令的输出流设置为 StrmOut 对象(ADODB)。流)接收任何返回的数据。

  • 使用 SQLOLEDB 提供程序时,默认情况下,你将获得 Sqlxmlx.dll提供的Microsoft SQLXML 功能。 若要对 SQLOLEDB 提供程序使用 Sqlxml4.dll,必须在 SQLOLEDB 提供程序连接对象上将 SQLXML Version 属性设置为 SQLXML.4.0

  • 执行命令(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  

测试 DiffGram

  1. 若要在计算机上的文件夹,请从 DiffGram 示例中的一个示例复制任意一个 DiffGram 和相应的 XSD 架构。

  2. 打开 Visual Basic 并创建标准 EXE 项目。

  3. 将这些引用添加到项目:

    Microsoft ActiveX Data Objects 2.8 Library  
    
  4. 在工具箱中,单击 CommandButton,然后在窗体上绘制按钮。

  5. 双击按钮编辑代码,并添加主题中提供的应用程序代码。

  6. 编辑代码以指定 DiffGram 和 XSD 文件名。 此外,根据需要编辑连接字符串。

  7. 执行应用程序。 执行的结果取决于所执行的 DiffGram。