![]() |
Consulta en Sql con la sentencia IN?
Hola a todos los del foro. Tengo una duda en cuanto a una sentencia de un procedimiento almacenado el codigo en sql es el siguiente:
code sin parametro _____________________________________ ALTER PROCEDURE TrakingSalida as SELECT Guia.OficinaDestino, Guia.CiudadOrigen, Paquete.NumeroRelacion, Paquete.UbicacionPaquete, Paquete.EstadoPaquete, Paquete.CodigoPaquete, Guia.TotalPeso, Guia.TipoDeEnvio, Guia.Codigo FROM Guia FULL OUTER JOIN Paquete ON Guia.Codigo = Paquete.CodigoGuia WHERE (Guia.OficinaDestino IN ('venezuela', 'españa', 'argentina', 'peru')) ______________________________________ Este codigo si me funciona el detalle esta cuando quiero pasarle el parametro code Com parametro _____________________________________ ALTER PROCEDURE TrakingSalida @OficinaDestino varchar(20) as SELECT Guia.OficinaDestino, Guia.CiudadOrigen, Paquete.NumeroRelacion, Paquete.UbicacionPaquete, Paquete.EstadoPaquete, Paquete.CodigoPaquete, Guia.TotalPeso, Guia.TipoDeEnvio, Guia.Codigo FROM Guia FULL OUTER JOIN Paquete ON Guia.Codigo = Paquete.CodigoGuia WHERE (Guia.OficinaDestino IN (@OficinaDestino)) ______________________________________ El parametro lo tengo a traves de un edit Datamodule2.TrakingSalida.Close; Datamodule2.TrakingSalida.Parameters[1].Value:=Edit1.Text; Datamodule2.TrakingSalida.Open; en el edit escribo lo mismo que en el codigo anterio 'venezuela', 'españa', 'argentina', 'peru' y no funciona mi pregunta es como escribo la lista? ayuda. __________________________________ Un saludo a todos.... |
Si mal no te entendí, vas a tener que tener tantos parámetros como items dentro del paréntesis
Código:
WHERE Guia.OficinaDestino IN (:P1, :P2, :P3, :P3)Saludos! |
Gracias por responder delphi.com.ar. lo que trato de hacer es que con un solo parametro armo un string 'venezuela', èspaña'.
Lo que tu me dices es que por ciuda debo tener declarado un parametro en mi procedimiento almacenado. pero el problema es que es muy variable por que aveses necesito realizar busquelas por 2 paises o por 8 o mas. como hago? |
Cita:
PD: Si mal no recuerdo hay un tipo de parámetro del tipo array, el cual desconozco, dudo de que sirva para esto, pero te recomiendo investigarlo. Saludos! |
Hola.
Yo lo que haría es pasarle una sola ciudad cada vez y utilizar el SP como una tabla, que puedes incluir en el from, de una consulta en la que haría la selección, y que llamaría directamente desde mi aplicación. Ejemplo: Código:
ALTER PROCEDURE TrakingSalidaCódigo:
SELECT TS.* Saludos |
Gracias por responder aprendiz. como hago para pasarle el codigo del Where al SP?
|
Creo que no lo necesitas, tal como te he planteado la consulta desde la parte en delphi al pasarselo directamente en el IN de la consulta el ya lo iría recogiendo y pasandolo como parámetro uno a uno al SP.
En caso que no funcionase, no tengo experiencia con el gestor que utilizas, puedes hacer la llamada pasándole el parámetro en el where de la consulta, si hubiese más de uno de construyes dinámicamente la parte del where en la consulta (no en el SP). El objetivo es pasar un solo parámetro cada vez al SP. Original: Código:
WHERE TS.OFICINADESTINO IN ('VENEZUELA','PERU')Código:
WHERE TS.OFICINADESTINO('VENEZUELA') or TS.OFICINADESTINO('PERU')Saludos |
| La franja horaria es GMT +2. Ahora son las 19:03:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi