Serializar Objetos en formato XML y enviar a SQL SERVER 2008

28/04/2010 - 16:26 por Daniel Maldonado | Informe spam
Estimados, estoy diseñando unos objetos con c# y necesito serializarlos para
enviarlos
a un Store Procedure en SQL Server.

Por Favor quien tiene algo implementado de esta forma ?.

Necesito una soga con este tema.

Probé varias cosas de la Web y ningúna me funciona.

Por favor.

Atte. Daniel.

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
28/04/2010 - 16:53 | Informe spam
"Daniel Maldonado" wrote in message
news:OhCA$
Mostrar la cita
Bueno, son dos temas totalmente independientes: Por una parte está la
pregunta de cómo se serializa un objeto para dar lugar a XML. Para esto se
puede usar la clase XmlSerializer.
El segundo problema sería cómo llamar a un procedimiento almacenado
pasándole un parámetro (que en este caso sería el XML pero a efectos de
hacer la llamada desde C# daría igual que fuera cualquier otro tipo de
información). Para esto se usa un SqlCommand junto con un SqlParameter.

¿Con cuál de las dos partes estás atascado? ¿Puedes concretar un poco más
en dónde encuentras la dificultad?
#2 Hernan
28/04/2010 - 18:20 | Informe spam
On 28 abr, 18:01, "Daniel Maldonado" wrote:
Mostrar la cita
Sin comentar tu diseño, ¿realmente necesitas que el tipo de datos sea
sqlxml? Debería ser
suficiente con un varchar(max).
También te recomiendo que pruebes primero si la serialización/
deserialización está bien hecha,
obviando el sqlserver en tus pruebas. Serializa a un string y
reconstruyes el objeto desde ahí.

-H.
#3 Daniel Maldonado
28/04/2010 - 18:33 | Informe spam
Si, Hernan. Coincido con vos.

También se puede utilizar una variable del tipo text.

El tema es que por algo existe el tipo de Datos SqlXML en .NET

Debe tener sus ventajas respecto del varchar. Sabiendo que el varchar tiene
como máximo creo que 8000 caracteres.

si son XML grandes, objetos grandes voy a tener problemas.

por eso me gustaría que alguién comparta ó me oriente mejor respecto de
serializar/desserializar objetos.

Sobre todo cuando quiero trabajar con SQL 2008.

Seguramente alguien tiene hecho algo ó algún link que me oriente bien.

Saludos.

Daniel.

P/D: ley del último recurso utilizar una variable varchar ó text. y si no se
puede, no se puede.



"Hernan" escribió en el mensaje
news:
On 28 abr, 18:01, "Daniel Maldonado" wrote:
Mostrar la cita
Sin comentar tu diseño, ¿realmente necesitas que el tipo de datos sea
sqlxml? Debería ser
suficiente con un varchar(max).
También te recomiendo que pruebes primero si la serialización/
deserialización está bien hecha,
obviando el sqlserver en tus pruebas. Serializa a un string y
reconstruyes el objeto desde ahí.

-H.
#4 Hernan
29/04/2010 - 13:03 | Informe spam
No cuestiono que exista para algo; solo dudo que sea lo que tu
necesitas ;-)
Y no lo necesitas porque, entre otras cosas, no creo que te interese a
validar
el XML de salida de la serialización contra un XSD; vamos, que eso no
lo hace
nadie.

varchar(max) permite superar el límite de los 8000, y eso fue lo que
te sugerí.
El tipo text es obsoleto.

Si lo único que necesitas es implementar persistencia, tampoco es
necesario
que la serialización sea XML. El BinaryFormatter es mas rápido y mas
compacto.
Pero en este caso la columna del sqlserver sería varbinary(max).


On 28 abr, 18:33, "Daniel Maldonado" wrote:
Mostrar la cita
#5 Daniel Maldonado
29/04/2010 - 13:13 | Informe spam
Si Hernan. lo voy a tener en cuenta.

Serialización binaria. si, también.

Comparto contigo.

Lo extraño es que no consigo encontrar un ejemplo completo de
serializar/desserializar con .NET y SQL

manejando por supuesto el tipo de parametro SQLXml.

Hasta ví por ahí un SQLXMLCommand también.

hay tanto en .NET y muchas cosas sirven para lo mismo que realmente te
confunde.

hay tanto.

Saludos Hernán.

Muchas gracias por tu comentario.

Atte. Daniel.



"Hernan" escribió en el mensaje
news:
No cuestiono que exista para algo; solo dudo que sea lo que tu
necesitas ;-)
Y no lo necesitas porque, entre otras cosas, no creo que te interese a
validar
el XML de salida de la serialización contra un XSD; vamos, que eso no
lo hace
nadie.

varchar(max) permite superar el límite de los 8000, y eso fue lo que
te sugerí.
El tipo text es obsoleto.

Si lo único que necesitas es implementar persistencia, tampoco es
necesario
que la serialización sea XML. El BinaryFormatter es mas rápido y mas
compacto.
Pero en este caso la columna del sqlserver sería varbinary(max).


On 28 abr, 18:33, "Daniel Maldonado" wrote:
Mostrar la cita
Ads by Google
Search Busqueda sugerida