Ejecutar un DiffGram utilizando ADO (SQLXML 4.0)

Esta aplicación de Microsoft Visual Basic utiliza ADO para establecer una conexión a una instancia de Microsoft SQL Server y después ejecuta un DiffGram. En esta aplicación, el DiffGram y el esquema XSD están almacenados en un archivo. La aplicación carga el DiffGram del archivo especificado. Puede utilizar cualquiera de los DiffGrams (y el esquema XSD asociado) descritos en Ejemplos de DiffGrams.

Éste es el proceso de la aplicación de ejemplo:

  • El objeto conn (ADODB.Connection) establece una conexión a una instancia en ejecución de SQL Server en un servidor concreto.

  • El objeto cmd (ADODB.Command) se ejecuta en la conexión establecida.

  • El lenguaje de comandos está establecido en DBGUID_MSSQLXML.

  • El DiffGram se copia en el flujo de comandos (strmIn) desde un archivo.

  • La secuencia de resultados del comando se establece en el objeto StrmOut (ADODB.Stream) para recibir cualquier dato devuelto.

  • Si está utilizando el proveedor SQLOLEDB, obtendrá de forma predeterminada la funcionalidad de Microsoft SQLXML que proporciona Sqlxmlx.dll. Para utilizar Sqlxml4.dll con el proveedor SQLOLEDB, la propiedad SQLXML Version debe estar establecida en SQLXML.4.0 en el objeto Connection del proveedor SQLOLEDB.

  • Se ejecuta el comando (DiffGram).

El siguiente código es la aplicación de ejemplo.

Nota

En el código, debe suministrarse el nombre de la instancia de SQL Server en la cadena de conexión.

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

Para probar el DiffGram:

  1. Copie en una carpeta de su equipo cualquiera de los DiffGrams y el esquema XSD correspondiente de uno de los ejemplos de Ejemplos de DiffGram.

  2. Abra Visual Basic y cree un proyecto EXE estándar.

  3. Agregue estas referencias al proyecto:

    Microsoft ActiveX Data Objects 2.8 Library
    
  4. En el cuadro de herramientas, haga clic en CommandButtony, a continuación, dibuje un botón en el formulario.

  5. Haga doble clic en el botón para modificar el código y agregue el código de aplicación que se proporciona en el tema.

  6. Modifique el código para especificar el DiffGram y los nombres de archivos XSD. Modifique también la cadena de conexión según corresponda.

  7. Ejecute la aplicación. El resultado de la ejecución depende del DiffGram que esté ejecutando.