使用 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。