Debido a un mantenimiento que estaba realizando necesitaba enviar un array con fechas a un procedimiento almacenado de SQL Server. Esto es mucho más rápido que realizar una llamada al procedimiento para cada elemento.
Ahí va el ejemplo:
Estructura XML (faltan los simbolos de mayor y menor porque el sistema los interpreta y no los muestra):
SolicitudVacaciones
dia valor = "Fecha1" /
dia valor = "Fecha2" /
dia valor = "Fechan" /
/SolicitudVacaciones
CREATE PROCEDURE spUtilizarArrayXML
@sFechasXML AS VARCHAR(8000)
AS
DECLARE @idoc INT
-- Creamos la tabla temporal que tendrá los datos de la estructura XML
CREATE TABLE #DiasSolicitados (DiaSolicitado VARCHAR(10))
-- Este procedimiento almacenado carga en memoria la estructura XML y guarda una referencia en @idoc
EXEC sp_xml_preparedocument @idoc OUTPUT, @sFechasXML
-- Insertamos los datos en la tabla temporal
INSERT INTO #DiasSolicitados Select * FROM OpenXml(@idoc,'SolicitudVacaciones/dia', 1)
WITH (valor VARCHAR(10))
-- Aquí iría el código utilzando los valores recien insertados en la tabla temporal
-- Finalmente se libera de la memoria el documento XML y la tabla temporal
exec sp_xml_removedocument @idoc output
DROP TABLE #DiasSolicitados
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario