XML Reporting Services vs XML SQL Server

Esto no es una comparación del xml de Reporting Services y el campo XML de SQL Server, sino al revés como hacer que se lleven bien los dos y el campo XML de SQL Server deje entrar el XML que crea el Reporting Services. Jejeje, parace lioso pero no, una vez que se le coge el “tranquillo”, esto está chupado.


 


Actualmente mi aplicación de Informes, guarda los informes en el nuevo campo XML que trae el SQL Server 2005. Una vez creado mis informes de Reporting Services(como no, jeje) y con algún que otro inconveniente, como comillas dobles para que se lo trague y se quede con solo una (ej.- ‘UnTexto’ –> ‘’UnTexto’’ o entidades HTML) y poco más puedo guardarlo en mi campo XML. Hasta que empezé a meter caracteres extraños para él. Claro yo no estoy muy puesto en esto de los caracteres unicode o ASCII, entonces me extraño que no me dejara introducir un nuevo Informe.


 


Después de buscar y preguntar por ahí conseguí hacerlo. Resulta que el XML interno del  Informe tiene como atributo para el mismo este: encoding=”utf-8″ o lo que es lo mismo unicode, mientras que el campo XML de SQL Server 2005 utiliza ascii.

 Si lo hacemos desde visual studio todo no hay problemas, es decir, creamos el informe con nuestros puntos, comas, acentos y caracteres especiales necesarios. Luego lo subimos al servidor y así no hay problemas. Pero claro por cuestiones técnicas no guardamos todos los informes en el servidor. La solución es cambiar los caracteres especiales por los de las entidades html. Así nos dejará guardar el xml. 

Esta es mi experiencia y la dejo aquí por si a alguien le pasa algo parecido.


 

Un Saludo

Sin categoría

8 thoughts on “XML Reporting Services vs XML SQL Server

  1. Hola, mira estoy trabajando con ms sql server 2000 y estoy teniendo el problema que describiste anteriormente con los caracteres especiales. Hice una aplicación desde vb6 que le mando como parametro a un store un texto que es de formato xml, pero cuando lo ejecuto me tira el error de que hay caracteres invalidos.
    Si me pudieras mandar algun ejemplo o tirarme alguna punta de como importar un documento xml al sql server 2000.

    Desde ya muchas gracias.
    Diego Avila

  2. Hola Diego,

    El problema es que SQL Server 2000 no tiene campos XML. Para ello puedes guardar tu XML en un campo de tipo texto y donde haya comilla simple(‘) lo cambias por dos(”).

    ¿Va por ahí el tema?

    Un Saludo

  3. No el problema viene en que si pongo un caraceter especial o acento me tira error, mira te paso el codigo de lo que tendria que hacer el el store en sql, con la diferencia que yo lo armo en vb6.

    DECLARE @xml varchar(8000)
    — Este es el documento XML
    SET @xml = ‘
    SET @xml = @xml + ‘
    SET @xml = @xml + ‘
    SET @xml = @xml + ‘
    SET @xml = @xml + ‘

    DECLARE @iDoc int

    EXEC sp_xml_preparedocument @iDoc OUTPUT, @xml

    SELECT *
    FROM OPENXML(@iDoc, ‘Products/Product’, 1)
    WITH (ProductID int,
    ProductName nvarchar(40),
    UnitPrice money) AS P

    EXEC sp_xml_removedocument @iDoc.

    Gracias. Diego Avila

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *