Compartir a través de


Ejecutar archivos de plantilla utilizando la propiedad CommandStream

En este ejemplo se muestra cómo se pueden especificar los archivos de plantilla que están compuestos de consultas SQL o XPath utilizando la propiedad CommandStream del objeto SqlXmlCommand. En esta aplicación, se abre un objeto FileStream para un archivo de comandos y se asigna la secuencia de archivo como la propiedad CommandStream que se ejecuta.

En el ejemplo siguiente, la propiedad CommandType se especifica como SqlXmlCommandType.Template (no como TemplateFile).

Esta es la plantilla XML de ejemplo:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <sql:query>
    SELECT TOP 2 ContactID, FirstName, LastName 
    FROM   Person.Contact
    FOR XML AUTO
  </sql:query>
</ROOT>

Esta es la aplicación C# de ejemplo. Para probar la aplicación, guarde la plantilla (TemplateFile.xml) y, a continuación, ejecute la aplicación. La aplicación ejecuta la consulta especificada en la plantilla XML y muestra el documento XML generado en pantalla.

[!NOTA]

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

using System;
using Microsoft.Data.SqlXml;
using System.IO;

class Test
{
      static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";
      public static int testParams()
      {
         //Stream strm;
         MemoryStream ms = new MemoryStream();
         StreamWriter sw = new StreamWriter(ms);
         ms.Position = 0;
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
         cmd.CommandStream = new FileStream("TemplateFile.xml", FileMode.Open, FileAccess.Read);
         cmd.CommandType = SqlXmlCommandType.Template;
         using (Stream strm = cmd.ExecuteStream())
         {
            using (StreamReader sr = new StreamReader(strm)){
               Console.WriteLine(sr.ReadToEnd());
            }
         }
         return 0;      
      }

      public static int Main(String[] args)
      {
         testParams();   
         return 0;
      }
   }

Para probar este ejemplo, debe tener instalado Microsoft .NET Framework en el equipo.

Para probar la aplicación

  1. Guarde la plantilla XML (TemplateFile.xml) que se proporciona en este ejemplo en una carpeta.

  2. Guarde el código C# (DocSample.cs) que se proporciona en este ejemplo en la misma carpeta en la que está almacenado el esquema. (Si almacena los archivos en otra carpeta, tendrá que modificar el código y especificar la ruta de acceso al directorio adecuada para el esquema de asignación).

  3. Compile el código. Para compilar el código en el símbolo del sistema, use:

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
    

    Esto crea una aplicación ejecutable (DocSample.exe).

  4. En el símbolo del sistema, ejecute DocSample.exe.