parametro a una sentencia, puede pasarse un array?

18/10/2005 - 19:14 por benjamin | Informe spam
Me explico :p.
En vbnet creo un tableadapter tipado desde una instrucion sql que me tiene
que recuperar una grupo de registros segun seleccione el usuario, el select
seria algo asi:

select cliente.nombre,consignatarios.nombre from
cliente,consignatarios,albaraneswhere albaranes.id in @grupo_ids_albaran
Y sin parametre seria asi:

select cliente.nombre,consignatarios.nombre from
cliente,consignatarios,albaraneswhere albaranes.id in (1,2,8,4)
cuando intento ejecutar la consultar ,el asiastente me pide el aprametro
"@grupo_ids_albaran" si le paso el valor como si no hubiese parametro, es
decir, (1,2,8,4) me da error porque no es un "int32".
A si que si alguin sabe como pasarle un paramtro para incluirle en una
clausula "IN".

Salu2

Preguntas similare

Leer las respuestas

#1 Maxi
17/10/2005 - 19:24 | Informe spam
http://www.sqlteam.com/item.asp?ItemIDc7


Salu2
Maxi [MVP SQL SERVER]


"benjamin" escribió en el mensaje
news:
Me explico :p.
En vbnet creo un tableadapter tipado desde una instrucion sql que me tiene
que recuperar una grupo de registros segun seleccione el usuario, el
select seria algo asi:

select cliente.nombre,consignatarios.nombre from
cliente,consignatarios,albaraneswhere albaranes.id in @grupo_ids_albaran
Y sin parametre seria asi:

select cliente.nombre,consignatarios.nombre from
cliente,consignatarios,albaraneswhere albaranes.id in (1,2,8,4)
cuando intento ejecutar la consultar ,el asiastente me pide el aprametro
"@grupo_ids_albaran" si le paso el valor como si no hubiese parametro, es
decir, (1,2,8,4) me da error porque no es un "int32".
A si que si alguin sabe como pasarle un paramtro para incluirle en una
clausula "IN".

Salu2

Respuesta Responder a este mensaje
#2 benjamin
19/10/2005 - 10:08 | Informe spam
Gracias "Maxi", pero me sigue sin funcionar.
hago lo siguiente:
Create procedure spParseValuePairs(@Array varchar(1000))
AS
set nocount on
begin
SELECT DISTINCT
remitentes.Id_cliente AS 'Remitente', remitentes.Localidad AS 'Remitente
localidad', consignatarios.Id_cliente AS 'Consignatario',
consignatarios.Localidad AS 'Consignatario Localidad'
FROM dbo.Clientes AS remitentes INNER JOIN
dbo.Albaranes ON remitentes.Id_cliente = dbo.Albaranes.remitente INNER
JOIN
dbo.Clientes AS consignatarios ON dbo.Albaranes.consignatario =
consignatarios.Id_cliente
WHERE (dbo.Albaranes.id_albaran in @Array)
ORDER BY remitentes.Id_cliente
end

despues llamo al procedimento :

exec spParseValuePairs '4,5,1'

Pero me da el siguiente erro, el mismo que comente en el promer post,:

Conversion failed when converting the varchar value '4,5,1' to data type
int.

comprendo el error, pero lo que nose es como parse "algo" para que lo
interprete bien la clausual "IN" del select.

Gracias
Respuesta Responder a este mensaje
#3 benjamin
19/10/2005 - 10:39 | Informe spam
solucionado de momento, aquie os dejo el link donde lo encontre, es parecido
a lo que me dejiste "maxi", muchas gracias.
http://www.sommarskog.se/arrays-in-sql.html
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida