ADO を使用した、DiffGram の実行 (SQLXML 4.0)
この Microsoft Visual Basic アプリケーションでは、ADO を使用して Microsoft SQL Server インスタンスへの接続を確立した後、DiffGram を実行します。このアプリケーションでは、DiffGram と XSD スキーマは 1 つのファイルに格納されており、ファイルを指定して DiffGram を読み込みます。「DiffGram の例 (SQLXML 4.0)」で説明されている DiffGram と関連する 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 をテストするには
DiffGram の例 から任意の DiffGram と対応する XSD スキーマを選んで、コンピュータのフォルダにコピーします。
Visual Basic を開き、標準 EXE プロジェクトを作成します。
プロジェクトに次の参照を追加します。
Microsoft ActiveX Data Objects 2.8 Library
ツール ボックスで、CommandButton をクリックした後、フォームにボタンを描画します。
ボタンをダブルクリックしてコードを編集し、トピックで提供されるアプリケーション コードを追加します。
コードに DiffGram と XSD ファイルの名前を指定し、接続文字列も適宜変更します。
アプリケーションを実行します。実行結果は、実行する DiffGram によって変わります。