XML como parametro de SP

05/09/2005 - 15:34 por Sandro | Informe spam
Alguien uso XML como parametro de un SP ?
Estoy tratando de pasar un XML a un Procedimiento

Este XML tiene una factura con sus respectivos items, pero cuando guardo la
cabecera de la factura, obtengo un numero de factura el cual debo de usar
para los items, pero no se como isertar este numero obtenido de la cabecera
en medio del XML, ya que el XML biene desde la aplicacion.

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
05/09/2005 - 20:42 | Informe spam
Sandro,

Inserta la cabezera de la factura, guarda el valor de la factura en una
variable y usa l;a variable para insertar el detalle.

Ejemplo:

create table t1 (
no_factura int not null identity primary key,
fecha datetime not null,
cliente_id varchar(15) not null --references cliente(cliente_id)
)
go

create table t2 (
no_factura int not null references t1(no_factura),
producto_id varchar(15) not null, -- refrences producto(producto_id)
cantidad int not null check(cantidad > 0)
)
go

create procedure dbo.usp_p1
@doc text
as
set nocount on
declare @no_factura int
declare @idoc int

EXEC sp_xml_preparedocument @idoc OUTPUT, @doc

insert into t1(fecha, cliente_id)
SELECT fecha, cliente_id
FROM
OPENXML (@idoc, '/ROOT/factura',2)
WITH (
fecha datetime '@fecha',
cliente_id varchar(15) '@cliente_id'
)

set @no_factura = scope_identity()

insert into t2(no_factura, producto_id, cantidad)
SELECT @no_factura, producto_id, cantidad
FROM
OPENXML (@idoc, '/ROOT/factura/facturaDetalle',2)
WITH (
producto_id varchar(15) '@producto_id',
cantidad int '@cantidad'
)

EXEC sp_xml_removedocument @idoc

return @@error
go

declare @doc varchar(1000)

set @doc ='
<ROOT>
<factura fecha="1996-07-04T00:00:00" cliente_id="VINET">
<facturaDetalle producto_id="11" cantidad="12"/>
<facturaDetalle producto_id="42" cantidad="10"/>
</factura>
</ROOT>'

exec dbo.usp_p1 @doc

select * from t1
select * from t2
go

drop procedure dbo.usp_p1
go

drop table t2, t1
go


AMB

"Sandro" wrote:

Mostrar la cita
#7 Maxi
06/09/2005 - 00:27 | Informe spam
Hola, leete mi weblog!!

http://weblogs.golemproject.com/acc.../3957.aspx


"Sandro" escribió en el mensaje
news:
Mostrar la cita
#8 Sandro
06/09/2005 - 14:33 | Informe spam
muchas gracias a todos.
solo pense que existia otra manera de hacerlo, ya que asi cmo que me parecia
que no se pudiera insertar una variable en medio, pero veo que no se puede y
no existe.

gracias a todos


"Sandro" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida