Condividi tramite


Esecuzione di un DiffGram mediante ADO (SQLXML 4.0)

Questa applicazione Microsoft Visual Basic utilizza ADO per stabilire una connessione a un'istanza di Microsoft SQL Server, quindi esegue un DiffGram. In questa applicazione il DiffGram e lo schema XSD vengono archiviati in un file. L'applicazione carica il DiffGram dal file specificato. È possibile utilizzare qualsiasi DiffGram (e lo schema XSD associato) descritto in Esempi di DiffGram.

Il processo per l'applicazione di esempio è il seguente:

  • L'oggetto conn (ADODB.Connection) stabilisce una connessione a un'istanza in esecuzione di SQL Server su un server specifico.

  • L'oggetto cmd (ADODB.Command) viene eseguito nella connessione stabilita.

  • Il sottolinguaggio del comando viene impostato su DBGUID_MSSQLXML.

  • Il DiffGram viene copiato nel flusso di comandi (strmIn) da un file.

  • Il flusso di output del comando viene impostato sull'oggetto StrmOut (ADODB.Stream) per la ricezione di eventuali dati restituiti.

  • Quando si utilizza il provider SQLOLEDB, per impostazione predefinita si otterrà la funzionalità Microsoft SQLXML fornita da Sqlxmlx.dll. Per utilizzare Sqlxml4.dll con il provider SQLOLEDB, la proprietà SQLXML Version deve essere impostata su SQLXML.4.0 sull'oggetto Connection del provider SQLOLEDB.

  • Il comando (DiffGram) viene eseguito.

Di seguito viene riportato il codice dell'applicazione di esempio:

[!NOTA]

Nel codice è necessario specificare il nome dell'istanza di SQL Server nella stringa di connessione.

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

Per testare il DiffGram

  1. Copiare in una cartella sul computer uno dei DiffGram e lo schema XSD corrispondente da uno degli esempi riportati in Esempi di DiffGram.

  2. Aprire Visual Basic e creare un progetto Standard Exe.

  3. Aggiungere i riferimenti seguenti al progetto:

    Microsoft ActiveX Data Objects 2.8 Library
    
  4. Nella casella degli strumenti fare clic su CommandButton, quindi disegnare un pulsante sul form.

  5. Fare doppio clic sul pulsante per modificare il codice e aggiungere il codice dell'applicazione fornito nell'argomento.

  6. Modificare il codice per specificare i nomi dei file DiffGram e XSD. Modificare anche la stringa di connessione in modo appropriato.

  7. Eseguire l'applicazione. Il risultato dell'esecuzione dipende dal DiffGram che si esegue.