problema con dataset

24/01/2008 - 21:17 por warface75 | Informe spam
Hola a todos!

tengo la necesidad de hacer una actualizacion de una tabla en sql server por
medio de un archivo xml pero no encuentro la manera correcta de hacerlo,
alguien me podria orientar al respecto?

necesito que verifique que campos han cambiado en relacion al xml y lo
actualice en la tabla de sql

muchas gracias!!!

Preguntas similare

Leer las respuestas

#1 Jesús López
25/01/2008 - 10:35 | Informe spam
Eso depende bastante de la forma que tenga el documento xml, y de cómo se
pueda determinar los registros que han cambiado. ¿Podrías ponernos un
fragmento de ese documento xml y la estructura de la tabla?. Sin ver ese
documento xml y sin saber la estructura de la tabla es bastante difícil
poder ayudarte. Por otra parte ¿qué sistema de base de datos usas? ¿qué
versión?. y ¿qué tamaño tiene el documento xml?.

Saludos:

Jesús López
www.solidq.com




"warface75" escribió en el mensaje
news:
Hola a todos!

tengo la necesidad de hacer una actualizacion de una tabla en sql server
por
medio de un archivo xml pero no encuentro la manera correcta de hacerlo,
alguien me podria orientar al respecto?

necesito que verifique que campos han cambiado en relacion al xml y lo
actualice en la tabla de sql

muchas gracias!!!
Respuesta Responder a este mensaje
#2 warface75
25/01/2008 - 17:37 | Informe spam
Claro, esto de abajo es la estructura y algunos datos que incluye mi xml
generado
necesito subirlo a un servidor sql 2005, podria eliminar todos los registros
y reemplazarlos, pero me parece poco practico, ya que tengo pensado agregar
un campo extra que solo sera modificable en la tabla de sql, se que puede
hacerse, el problema es que no me imagino como, muchas gracias por su ayuda!

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<productos_web>
<NOMBRE>SEGURO PORTEZUELA JETTA 87-92 W-2050 (JGO)</NOMBRE>
<LINEA>172</LINEA>
<UNIDAD>JGO.</UNIDAD>
<CLAVE>2050</CLAVE>
<PRECIO>4.5</PRECIO>
<URLZ>~/images/2050.jpg</URLZ>
<MARCA>/VOLKSWAGEN</MARCA>
<CREACION>2005-12-31T11:25:17-06:00</CREACION>
<MODIFICACION>2008-01-04T10:45:53-06:00</MODIFICACION>
</productos_web>
<productos_web>
<NOMBRE>SEGURO PORTEZUELA CROMADO 39-2 V.W. (JGO)</NOMBRE>
<LINEA>119</LINEA>
<UNIDAD>PZA.</UNIDAD>
<CLAVE>392</CLAVE>
<PRECIO>10</PRECIO>
<URLZ>~/images/392.jpg</URLZ>
<MARCA>/VOLKSWAGEN</MARCA>
<CREACION>2005-12-31T11:25:17-06:00</CREACION>
<MODIFICACION>2007-12-12T12:19:17-06:00</MODIFICACION>
</productos_web>
Respuesta Responder a este mensaje
#3 Jesús López
27/01/2008 - 11:25 | Informe spam
¿Y la estructura de la tabla?

Necesito saber también cómo se llama la tabla, los nombres de los campos, de
qué tipo son, y cual es la clave primaria.

Con esta infomración podría escribirte el código exacto para hacer lo que
quieres. Si no lo único que te puedo decir es que se me ocurren tres métodos
diferentes para hacer lo que necesitas:


Solucion 1

1 Cargar el documento Xml en un XmlDocument
2 Crear un comando de actualización "UPDATE TABLA SET Campo1 = @Campo1,
Campo2 = @Campo2 WHERE ClavePrimaria = @ClaviPrimaria"
3 Recorriendo el documento xml
3.1 establecer el valor de los parámetros del comando de
actualización
3.1 Ejecutar el comando de actualización


Solución 2

1 Crear un dataset tipado que corresponda con el documento xml
2 Cargar el dataset desde el documento xml
3 Crear un comando de actualización adecuado para la tabla en cuestión
4 Por cada datarow en el datatable
4.1 Establecer el valor de los parámetros del comando a partir de los
campos de datarow
4.2 Ejecutar el comando de actualización

Solución 3

1 Crear un procedimiento almacenado en SQL Server 2005 que tenga como
parámetro el xml:
1.1. Mediante el uso de las características de xml de SQL Server
construir una instrucción UPDATE que actualice la tabla a partir del xml.
2 En la aplicación cliente:
2.1 Cargar el documento xml en un string
2.2 Llamar al procedimiento almacenado pasandole el xml.


Para mi la mejor es la solución3 al ser la más eficiente de todas y no es
difícil de implementar si conoces las caraterísticas de tratamiento del xml
en SQL Server.

La solución 1 y la solucion 2 son similares, aunque la solución 2 es más
fácil de implementar. Cualquiera de estas dos prodría valer, pero la
diferncia de rendimiento con respecto a la solución 3 será tanto mayor
cuanto más grande sea el documento xml.


¿Qué tamaño tiene el documento xml?

Saludos:

Jesús López
www.solidq.com






"warface75" escribió en el mensaje
news:
Claro, esto de abajo es la estructura y algunos datos que incluye mi xml
generado
necesito subirlo a un servidor sql 2005, podria eliminar todos los
registros
y reemplazarlos, pero me parece poco practico, ya que tengo pensado
agregar
un campo extra que solo sera modificable en la tabla de sql, se que puede
hacerse, el problema es que no me imagino como, muchas gracias por su
ayuda!

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
<productos_web>
<NOMBRE>SEGURO PORTEZUELA JETTA 87-92 W-2050 (JGO)</NOMBRE>
<LINEA>172</LINEA>
<UNIDAD>JGO.</UNIDAD>
<CLAVE>2050</CLAVE>
<PRECIO>4.5</PRECIO>
<URLZ>~/images/2050.jpg</URLZ>
<MARCA>/VOLKSWAGEN</MARCA>
<CREACION>2005-12-31T11:25:17-06:00</CREACION>
<MODIFICACION>2008-01-04T10:45:53-06:00</MODIFICACION>
</productos_web>
<productos_web>
<NOMBRE>SEGURO PORTEZUELA CROMADO 39-2 V.W. (JGO)</NOMBRE>
<LINEA>119</LINEA>
<UNIDAD>PZA.</UNIDAD>
<CLAVE>392</CLAVE>
<PRECIO>10</PRECIO>
<URLZ>~/images/392.jpg</URLZ>
<MARCA>/VOLKSWAGEN</MARCA>
<CREACION>2005-12-31T11:25:17-06:00</CREACION>
<MODIFICACION>2007-12-12T12:19:17-06:00</MODIFICACION>
</productos_web>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida