Ausführen eines DiffGram-Objekts mit ADO (SQLXML 4.0)

Diese Microsoft Visual Basic-Anwendung verwendet ADO, um eine Verbindung zu einer Instanz von Microsoft SQL Server herzustellen, und führt dann ein DiffGram-Objekt aus. In dieser Anwendung werden das DiffGram-Objekt und das XSD-Schema in einer Datei gespeichert. Die Anwendung lädt das DiffGram-Objekt aus der angegebenen Datei. Sie können ein beliebiges DiffGram-Objekt (mit zugeordnetem XSD-Schema) von den in DiffGram-Beispiele beschriebenen verwenden.

Das ist der Ablauf bei der Beispielanwendung:

  • Das conn-Objekt (ADODB.Connection) stellt eine Verbindung zu einer aktuell ausgeführten Instanz von SQL Server auf einem bestimmten Server her.

  • Das cmd -Objekt (ADODB.Command) wird für die hergestellte Verbindung ausgeführt.

  • Der Befehlsdialekt wird auf DBGUID_MSSQLXML festgelegt.

  • Das DiffGram-Objekt wird aus einer Datei zum Befehlsdatenstrom (strmIn) kopiert.

  • Der Ausgabedatenstrom des Befehls wird auf das StrmOut-Objekt (ADODB.Stream) festgelegt, um eventuell zurückgegebene Daten zu empfangen.

  • Wenn Sie den SQLOLEDB-Anbieter verwenden, wird die Microsoft SQLXML-Funktionalität standardmäßig von Sqlxmlx.dll bereitgestellt. Wenn Sie Sqlxml4.dll mit dem SQLOLEDB-Anbieter verwenden möchten, muss die SQLXML Version-Eigenschaft des Connection-Objekts für den SQLOLEDB-Anbieter auf SQLXML.4.0 festgelegt sein.

  • Der Befehl (DiffGram) wird ausgeführt.

Der folgende Code stellt die Beispielanwendung dar.

HinweisHinweis

Im Code müssen Sie den Namen der Instanz von SQL Server in der Verbindungszeichenfolge bereitstellen.

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

So testen Sie das DiffGram-Objekt

  1. Kopieren Sie eines der DiffGram-Objekte und das zugehörige XSD-Schema aus einem der Beispiele in DiffGram-Beispiele in einen Ordner auf Ihrem Computer.

  2. Öffnen Sie Visual Basic, und erstellen Sie ein Standard-EXE-Projekt.

  3. Fügen Sie dem Projekt die folgenden Verweise hinzu:

    Microsoft ActiveX Data Objects 2.8 Library
    
  4. Klicken Sie in der Toolbox auf CommandButton, und zeichnen Sie dann eine Schaltfläche auf dem Formular.

  5. Doppelklicken Sie auf die Schaltfläche, um den Code zu bearbeiten, und fügen Sie den Anwendungscode aus dem Dokument hinzu.

  6. Bearbeiten Sie den Code, um das DiffGram-Objekt und die XSD-Dateinamen anzugeben. Bearbeiten Sie außerdem die Verbindungszeichenfolge nach Bedarf.

  7. Führen Sie die Anwendung aus. Das Ergebnis der Ausführung hängt davon ab, was für ein DiffGram-Objekt Sie ausführen.