Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Filtrar un StoredProcedure (https://www.clubdelphi.com/foros/showthread.php?t=70225)

ocram 08-10-2010 02:13:04

Filtrar un StoredProcedure
 
Hola a todos.

Existe alguna forma de filtrar un stored procedure, digamos que tengo un procedimiento asi

Select * from tabla where id in (1,2,3,4)

hay alguna forma de pasarle varios parametros al storedprocedure osea pasarle el 1,2,3,4


GRacias

Neftali [Germán.Estévez] 08-10-2010 09:50:05

Define los parámetros de entrada en el Stored Preocedure y cuando hagas la llamada desde delphi les asignas los valores que necesitas... :confused::confused:

Tal vez no te ehe entendido bien.
Deberías comentar qué componentes estás utilizando para conectarte. ¿Qué Base de Datos?

ocram 08-10-2010 16:42:29

El componente que estoy usando es un TADOStoredPRoc y la DB esta en SQL 2005 pero tomando en cuenta el mismo ejemplo de

Select * from tabla where id in (1,2,3,4)

suponiendo que yo le ponga el parametro

@parametros VARCHAR(50)

Select * from tabla where id in (@parametros)

y si yo le mando los parametros 1,2,3,4 para el sistema quedaria al momento de ejecutarlo asi:

Select * from tabla where id in ('1,2,3,4')

y si el parametro en vez de varchar lo pongo como int pues solo puedo pasarle un numero entonces para mi lo ideal seria que pudiera modificar una linea en tiempo de ejecucion algo asi:
  1. Select * from tabla where id in (
  2. 1,2,3,4
  3. )
desde delphi modificar la linea 2. Espero haber sido mas claro

cloayza 15-10-2010 19:48:07

Bueno a aclarar algunas cosillas.

1) Para llamar a un store procedure debes hacerlo asi
Código SQL [-]
SELECT * FROM TU_STORE_PROCEDURE(:Param1, :Param2,...)

2) En un store procedure los parametros no son dinamicos, es decir si la creas con 4 parametros, no podras pasa un 5to parametro.(Parece obvio :D)

Ejmp: Firebird
Código SQL [-]
create procedure spFiltro(p1 as integer, p2 as integer, p3 as integer, p4 as integer)
return( Dato1 integer)

begin
       for select dato from Tu_Tabla
           where filtro in (: p1,: p2,: p3,: p4)
           into :dato1 
       do
          suspend;
end

Saludos...


La franja horaria es GMT +2. Ahora son las 16:00:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi