Parâmetro de Entrada em Stored Procedure

Firebird

12/09/2005

Pessoal gostaria de saber como faço para passar mais de um código de cliente para dentro de uma SP (Stored Procedure) para ser usado em NOT IN de um Select como o do Exemplo abaixo:

  Select NOME  from CLIENTES
  where CLIENTE_ID not in (:PARAMETRO)
  into :CLIENTE_NOME;


tentei criando PARAMETRO como sendo VARCHAR mas não deu certo, alguém teria alguma dica?


Steve_narancic

Steve_narancic

Curtidas 0

Respostas

_rodfaria_

_rodfaria_

12/09/2005

TListaCodigos = array of integer;
...
function MontaSQLIn(campo:string;lista:TListaCodigos):string;
var
  i:integer;
begin
    if length(lista) = 0 then exit;

    Result:=campo+´ not in (´;

    for i:=0 to length(lista)-1 do begin
      if i<>0 then Result:=Result+´,´;
      Result:=Result+inttostr(lista[i]);
    end;

    Result:=Result+´)´;
end;
...
sql:=´select ... where ´+MontaSQLIn(´CLIENTE_ID´,um_array_vindo_de_alguma_funcao);


Rod.


GOSTEI 0
Steve_narancic

Steve_narancic

12/09/2005

Acho que não consegui me explicar muito bem, não quero usar este select no Delphi e sim em uma Stored Procedure dentro de um GDB


GOSTEI 0
Afarias

Afarias

12/09/2005

steve, *não é possível* passar parâmetros para um IN.

existem entratanto, dependendo do caso, formas diferentes de implementar algo com resultado semelhante.



T+


GOSTEI 0
Sremulador

Sremulador

12/09/2005

steve, *não é possível* passar parâmetros para um IN. existem entratanto, dependendo do caso, formas diferentes de implementar algo com resultado semelhante.


quais seriam elas...


GOSTEI 0
Sremulador

Sremulador

12/09/2005

helpppp.......


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

12/09/2005

monte, na SP, uma string com a instrução pronta e execute-a com EXECUTE STATEMENT


GOSTEI 0
Sremulador

Sremulador

12/09/2005

Amigo não funciona....


GOSTEI 0
Martins

Martins

12/09/2005

Eu tb quero saber como fazer isso, pois acredito q usar case não vem ao caso


GOSTEI 0
Thomaz_prg

Thomaz_prg

12/09/2005

Amigos, usando EXECUTE STATEMENT funciona...

Dêem uma olhada no post http://forum.devmedia.com.br/viewtopic.php?t=73564


GOSTEI 0
POSTAR