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:
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.
Abra Visual Basic y cree un proyecto EXE estándar.
Agregue estas referencias al proyecto:
Microsoft ActiveX Data Objects 2.8 Library
En el cuadro de herramientas, haga clic en CommandButtony, a continuación, dibuje un botón en el formulario.
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.
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.
Ejecute la aplicación. El resultado de la ejecución depende del DiffGram que esté ejecutando.