Compartir a través de


Ejecutar archivos de plantilla utilizando la propiedad CommandStream

Se aplica a: SQL ServerAzure SQL Database

En este ejemplo se muestra cómo se pueden especificar los archivos de plantilla que constan de consultas SQL o XPath mediante la propiedad CommandStream del objeto SqlXmlCommand. En esta aplicación, se abre un objeto FileStream para un archivo de comandos y la secuencia de archivos se asigna como 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 proporcionar el nombre de la instancia de Microsoft SQL Server en el 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 la aplicación

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

  2. Guarde el código de C# (DocSample.cs) que se proporciona en este ejemplo en la misma carpeta en la que se almacena 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.