Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parámetros para procedimientos almacenados

31 views
Skip to first unread message

juanntorres

unread,
Mar 26, 2007, 2:59:10 PM3/26/07
to
Hola, tengo un pequeño desconocimiento en lo que respecta a cierto
tipo de parámetros.

Tengo un software que en sus componentes hace todas las llamadas a las
bases de datos de sql server 2000, como es normal claro, resulta que
cierto proceso donde puedo en mi aplicación hacer todo un conjunto de
registros y luego enviarlos a un procedimiento almacenado. Mi pregunta
es ¿como puedo enviarle todo el conjunto de registros sin tener que
enviarle registro por registro al procedimiento almacenado?

Me explico con un ejemplo bien sencillo: Si acabo de crear 7 clientes
en un cursor o archivo en memoria, entonces a la hora de guardarlos en
la base de datos, debo enviarlos uno por uno, para un total de 7
llamados del procedimiento almacenado que se encarga de guardar a los
clientes. Lo que quisiera es poder enviar ese conjunto de registros
para que en procedimiento almacenado se ejecute este proceso sin tener
que usar este ciclo en la programación de mi aplicación.

Gracias por todo, espero una buena respuesta que me saque de este lío
en cuanto a velocidad.

Jesús López

unread,
Mar 27, 2007, 7:26:53 AM3/27/07
to

El procedimiento almacenado podría recibir todos los registros en un
parámetro de tipo text que contuviera los registros en formato XML. Luego
usando OPENXML puedes insertar todos los registros.

Sería algo así como:

CREATE PROCEDURE proc_insertar_clientes
@clientes_xml text
AS
DECLARE @handle INT
EXEC sp_xml_prepare_document @handle OUT, @clientes

INSERT INTO Clientes( <lista de campos> )
SELECT <lista de campos>
FROM OPENXML(@handle, <row patern>)

EXEC sp_xml_remove_document @handle


"juanntorres" <juan.n...@gmail.com> escribió en el mensaje
news:1174935550.0...@l77g2000hsb.googlegroups.com...

Rubén Vigón

unread,
Mar 27, 2007, 7:43:44 AM3/27/07
to
Hola Juan,

Yo uso XML: genero la cadena XML en la aplicación cliente, se la envío al servidor en un parámetro varchar(4000) y obtengo sus registros y los inserto en mi tabla mediante «OpenXML»

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org

Maxi

unread,
Mar 27, 2007, 8:32:08 AM3/27/07
to
Ruben yo tambien :) pero en lugar de usar varchar(4000) uso text y en 2005
directamente xml

--

Salu2

-----------------------------------------
Microsoft MVP SQL Server
Culminis Speaker
------------------------------------------
"Rubén Vigón" <vigon...@ESTOmvps.org> escribió en el mensaje
news:OHmUuUGc...@TK2MSFTNGP02.phx.gbl...

0 new messages