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

Pasar un array como parámetro a un Procedimiento Almacenado.

2,649 views
Skip to first unread message

Ambros

unread,
Dec 2, 2002, 12:19:08 PM12/2/02
to
Hola a todos.
Quiero enviar desde visual basic usando el objeto Parameter de ADO 2.7 un
array de valores long.
El tema es que no se que tipo de parametro usar y tpco. como recorrer ese
array dentro del propio proc. alm. de SQL Server...
¿Me podéis enviar un ejemplo aqui al grupo de como hacer esto?

Muchas gracias por anticipado.


Keko

unread,
Dec 2, 2002, 1:15:40 PM12/2/02
to
No se si te valdra pero yo en lugar de mandar un array q no se puede lo q
hago es mandar un cadena de texto y separo por | cada uno de los "elementos"
del supuesto array... luego dentro de SQL me hice un funcion a la q llamo
split q es como sigue:

CREATE FUNCTION [dbo].[split]
(
@cadena varchar(255),
@caracter char(1)
)
RETURNS @split TABLE
(
caracter varchar(255)
)
AS
BEGIN
DECLARE @caracter_division varchar(1)
DECLARE @posicion int
DECLARE @posicion_ant int
SET @cadena = @cadena + @caracter
SET @posicion = (SELECT CHARINDEX(@caracter,@cadena,0))
SET @posicion_ant = -1
WHILE @posicion_ant <> 0
BEGIN

IF @posicion <> 0
INSERT @split
VALUES ( SUBSTRING(@cadena,@posicion_ant+1,@posicion-@posicion_ant-1) )

SET @posicion = (SELECT CHARINDEX(@caracter,@cadena,@posicion+1))
SET @posicion_ant = (SELECT CHARINDEX(@caracter,@cadena,@posicion_ant+1))

END
RETURN
END

Es posible q el codigo se pueda mejorar asi q si puedes me lo dices... esta
funcion te devuelbe en una tabla en la q los registros son los elementos
separados por | del texto q le pasas.. tb puedes especificar el simbolo q
usas para separar...
Espero q te ayude...

KEKO

Víctor Rafael Bocanegra Arias

unread,
Dec 2, 2002, 6:14:05 PM12/2/02
to
Otra solucion similar es mandando tu array en formato XML. Revisa en el BOL
los siguientes procedimientos y comandos que te pueden ayudar:

-sp_xml_preparedocument
-openxml
-sp_xml_removedocument

Salu2

Víctor Rafael Bocanegra Arias
Lima, Peru


"Keko" <s.s...@esemtia.com> escribió en el mensaje
news:grNG9.1518$6m.1...@news.ono.com...

Miguel Egea

unread,
Dec 2, 2002, 6:28:45 PM12/2/02
to
en portalsq.com hay algún ejemplo que habla de esto, también

--
Un saludo
Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP

"Víctor Rafael Bocanegra Arias" <vic...@barreda.com.pe> escribió en el
mensaje news:uyk4ielmCHA.2116@tkmsftngp02...

Ambros

unread,
Dec 3, 2002, 4:31:08 AM12/3/02
to
Gracias a todos por vuestras respuestas, al final con el truco de pasar el
array como un parámetro de cadena delimitado por "|" me ha ido de perlas.

De nuevo gracias


herrera.jar...@gmail.com

unread,
Aug 1, 2019, 4:45:28 PM8/1/19
to
0 new messages