使用 ADO 執行 DiffGram (SQLXML 4.0)
這個 Microsoft Visual Basic 應用程式會使用 ADO 來建立 Microsoft SQL Server 執行個體的連接,然後執行 DiffGram。 在此應用程式中,DiffGram 和 XSD 結構描述會儲存在一個檔案中。 應用程式會從指定的檔案載入 DiffGram。 您可以使用<DiffGram 範例>中所描述的任何 DiffGrams (及相關聯的 XSD 結構描述)。
這是範例應用程式的程序:
conn 物件 (ADODB.Connection) 會在特定的伺服器上建立執行中 SQL Server 執行個體的連接。
cmd 物件 (ADODB.Command) 會在已建立的連接上執行。
命令用語會設定為 DBGUID_MSSQLXML。
DiffGram 會從檔案複製到命令資料流 (strmIn)。
命令的輸出資料流會設定為 StrmOut 物件 (ADODB.Stream) 才能接受任何傳回的資料。
當您使用 SQLOLEDB 提供者時,根據預設,您會取得 Sqlxmlx.dll 提供的 Microsoft SQLXML 功能。 若要搭配 SQLOLEDB 提供者使用 Sqlxml4.dll,必須在 SQLOLEDB 提供者的 Connection 物件上,將 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
將其中任何一個 DiffGrams 和對應的 XSD 結構描述從<DiffGram 範例>中的其中一個範例複製到電腦上的資料夾中。
開啟 Visual Basic,然後建立一個標準的 EXE 專案。
將這些參考加入到專案中:
Microsoft ActiveX Data Objects 2.8 Library
在 [工具箱] 中,按一下 CommandButton,然後在表單上繪製一個按鈕。
按兩下該按鈕來編輯程式碼,然後加入主題中提供之應用程式的程式碼。
編輯程式碼以指定 DiffGram 和 XSD 檔案名稱。 同時在適當時,編輯連接字串。
執行應用程式。 執行的結果取決於您所執行的 DiffGram。