Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/07/2003, 12:12
ximex
 
Fecha de Ingreso: enero-2002
Mensajes: 121
Antigüedad: 22 años, 10 meses
Puntos: 0
XML + SQL

se que puedes hacer manejo de xml en un store procedure..
aca te envio algo


OPENXML
OPENXML proporciona una vista de un conjunto de filas en un documento XML. Como OPENXML es un proveedor del conjunto de filas, OPENXML puede utilizarse en instrucciones Transact-SQL en las que pueden aparecer proveedores del conjunto de filas como una tabla, vista o la función OPENROWSET.

Sintaxis
OPENXML(idoc int [in],rowpattern nvarchar[in],[flags byte[in]])
[WITH (SchemaDeclaration | TableName)]

Argumentos
idoc

Es el controlador del documento de la representación interna de un documento XML. La representación interna de un documento XML se crea llamando a sp_xml_preparedocument.

rowpattern

Es el patrón XPath utilizado para identificar los nodos (en el documento XML cuyo controlador se pasa en el parámetro idoc) que se van a procesar como filas.

flags

Indica la asignación que debe utilizarse entre los datos XML y el conjunto de filas relacional, y cómo debe llenarse la columna de desbordamiento; flags es un parámetro de entrada opcional, y puede tomar uno de estos valores.

Ejemplo:

DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
<Order OrderID="10248" CustomerID="VINET" EmployeeID="5"
OrderDate="1996-07-04T00:00:00">
<OrderDetail ProductID="11" Quantity="12"/>
<OrderDetail ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
<Order OrderID="10283" CustomerID="LILAS" EmployeeID="3"
OrderDate="1996-08-16T00:00:00">
<OrderDetail ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>'
-- Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement using OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/ROOT/Customer',1)
WITH (CustomerID varchar(10),
ContactName varchar(20))
EXEC sp_xml_removedocument @idoc

El resultado es el siguiente:

CustomerID ContactName
---------- --------------------
VINET Paul Henriot
LILAS Carlos Gonzlez

mas informacion el el libro en pantalla Microsoft sql Server 2000
ahi encontrara n material.

bye