Compartir a través de


Ejecución de un diffGram mediante ADO (SQLXML 4.0)

Esta aplicación de Microsoft Visual Basic usa ADO para establecer una conexión a una instancia de Microsoft SQL Server y, a continuación, ejecuta un diffGram. En esta aplicación, el diffGram y el esquema XSD se almacenan en un archivo. La aplicación carga el DiffGram desde el archivo especificado. Puede usar cualquiera de los diffGrams (y el esquema XSD asociado) descrito en Ejemplos de DiffGram.

Este es el proceso de la aplicación de ejemplo:

  • Objeto conn (ADODB). Connection) establece una conexión a una instancia en ejecución de SQL Server en un servidor específico.

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

  • El dialecto de comandos se establece en DBGUID_MSSQLXML.

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

  • El flujo de salida del comando se establece en el objeto StrmOut (ADODB). Stream) para recibir los datos devueltos.

  • Cuando use el proveedor SQLOLEDB, de forma predeterminada obtendrá la funcionalidad de Microsoft SQLXML proporcionada por Sqlxmlx.dll. Para usar Sqlxml4.dll con el proveedor SQLOLEDB, la propiedad VERSIÓN de SQLXML debe establecerse en SQLXML.4.0 en el objeto Connection del proveedor SQLOLEDB.

  • Se ejecuta el comando (DiffGram).

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

Nota:

En el código, debe proporcionar 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. En una carpeta del equipo, copie 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 CommandButton y, a continuación, dibuje un botón en el formulario.

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

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

  7. Ejecute la aplicación. El resultado de la ejecución depende de qué DiffGram se está ejecutando.