Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

XML en SQL Server 2005

Estas en el tema de XML en SQL Server 2005 en el foro de SQL Server en Foros del Web. Alguien ha utilizado xml en 2005? Tengo algunas dudass...
  #1 (permalink)  
Antiguo 06/10/2006, 14:57
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Pregunta XML en SQL Server 2005

Alguien ha utilizado xml en 2005?


Tengo algunas dudass
  #2 (permalink)  
Antiguo 06/10/2006, 15:40
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Oyep Mithrandir... eres mal pana, contestas el resto de temas y el mio no
  #3 (permalink)  
Antiguo 06/10/2006, 17:52
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
sería mejor si pones tus dudas no?
  #4 (permalink)  
Antiguo 07/10/2006, 09:35
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47


ok ok. Tengo un xml, pero no es una variable xml sino un varchar cuyo contenido responde a la sintaxis de un xml. La cosa es que no se como modificar sus valores, se como hacerle un select con el OPEN XML y FROM XML pero nada mas puedo encontrar en la ayuda de los libros en pantalla
  #5 (permalink)  
Antiguo 07/10/2006, 13:23
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
seguramente no buscas bien , aqui un ejemplo basado en la documentacion

declare @foo xml

set @foo = '<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

</bookstore>'

-- Reemplazar el valor del atributo 'lang' del nodo 'title'
set @foo.modify ('
replace value of (/bookstore/book/title/@lang)[1]
with "test" ')

-- Reemplazar el valor del nodo 'author'
set @foo.modify ('
replace value of (/bookstore/book/author/text())[1]
with "Autor" ')

select @foo
  #6 (permalink)  
Antiguo 09/10/2006, 16:46
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
XML es junto con la replicación, de los temas que tengo pendientes por experimentar con SQL Server...
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 10/10/2006, 11:43
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por foo Ver Mensaje
seguramente no buscas bien , aqui un ejemplo basado en la documentacion

declare @foo xml

set @foo = '<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

</bookstore>'

-- Reemplazar el valor del atributo 'lang' del nodo 'title'
set @foo.modify ('
replace value of (/bookstore/book/title/@lang)[1]
with "test" ')

-- Reemplazar el valor del nodo 'author'
set @foo.modify ('
replace value of (/bookstore/book/author/text())[1]
with "Autor" ')

select @foo
eje!! no había pasado por allí. Gracias.

Aunque hay algo que no entiendo:

mis xml's tienen sus valores entre comillas dobles y el que tu muestras no tiene comillas, y el tag title tiene dos valores en la que no entiendo su sintaxis

Código:
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
Cita:
Iniciado por Mithrandir Ver Mensaje
XML es junto con la replicación, de los temas que tengo pendientes por experimentar con SQL Server...
Orale!! no sabía. Pensaba que tu sabías de todo
  #8 (permalink)  
Antiguo 10/10/2006, 13:48
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
Cita:
Iniciado por Developer9 Ver Mensaje
eje!! no había pasado por allí. Gracias.

Aunque hay algo que no entiendo:

mis xml's tienen sus valores entre comillas dobles y el que tu muestras no tiene comillas, y el tag title tiene dos valores en la que no entiendo su sintaxis

Código:
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
http://www.w3schools.com/xml/xml_elements.asp
http://www.w3schools.com/xml/xml_attributes.asp
  #9 (permalink)  
Antiguo 10/10/2006, 14:12
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
yO he tenido todo en atributos

El sitio web dice que tenerlo como Elemento es mejor
  #10 (permalink)  
Antiguo 10/10/2006, 14:24
foo
 
Fecha de Ingreso: febrero-2006
Mensajes: 278
Antigüedad: 18 años, 2 meses
Puntos: 0
depende de que es lo que quieres representar, no tomes tan literalmente las cosas
  #11 (permalink)  
Antiguo 10/10/2006, 14:35
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Gracias amigo foo por toda la información. Aunque no entendí todas las diferencias y para que se usa cada cosa porque está en el idioma gringo

Lo que necesitaba era modificar los atributos
  #12 (permalink)  
Antiguo 10/10/2006, 17:11
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Cita:
Iniciado por Developer9 Ver Mensaje
Orale!! no sabía. Pensaba que tu sabías de todo
Jajaja, solo Dios... y eso que luego veo cada cosa que hasta de eso dudo
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #13 (permalink)  
Antiguo 30/10/2006, 15:41
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Cita:
Iniciado por foo Ver Mensaje
seguramente no buscas bien , aqui un ejemplo basado en la documentacion

declare @foo xml

set @foo = '<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>

<book>
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>

</bookstore>'

-- Reemplazar el valor del atributo 'lang' del nodo 'title'
set @foo.modify ('
replace value of (/bookstore/book/title/@lang)[1]
with "test" ')

select @foo

HOla de nuevo foo

Estaba trabajando con esto de la actualizacion del xml y la funcion modify solo me permite utilizar cadenas de caracteres pero no me permite concatenar. En tu ejemplo reemplazas el atributo del nodo @lang con la palabra 'test'. Pero que pasa si yo lo quiero reemplazar con el valor de algúna variable, no me deja concatenar!

Estoy tratando de hacer esto:

Código:
declare @XmlCierraOrdenIngreso as xml
declare @VL_IdEmpresa as int
set @VL_IdEmpresa=99
set @XmlCierraOrdenIngreso='<?xml version="1.0" encoding="iso-8859-1"?><Usuario><ResultSet><Cabecera IdEmpresa="" IdOficina="" NumDocumento="" OrigenDocumentoInv="1"/><Detalle><Items IdDocumento="8"/><Items IdDocumento="7"/></Detalle></ResultSet></Usuario>'
SELECT @XmlCierraOrdenIngreso

SET @XmlCierraOrdenIngreso.modify('replace value of (/Usuario/ResultSet/Cabecera/@IdEmpresa)[1] with  "' + convert(varchar(max),@VL_IdEmpresa) + '"')
--SET @XmlCierraOrdenIngreso.modify('replace value of (/Usuario/ResultSet/Cabecera/@IdEmpresa)[1] with  "96"')
SELECT @XmlCierraOrdenIngreso
Y me sale el siguiente error en la linea en negrita:

The argument 1 of the xml data type method "modify" must be a string literal.

Creo estar concatenando dos cosas string.

Y si comento aquella linea y utilizo la linea siguiente, utilizando el valor 96 si funciona, si solo funciona así no tiene chiste

Alguna ayudita
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:09.