[firebase-br] StoredProcedure com Parametros

RedDevil reddevil em reddevil.eti.br
Ter Ago 16 09:24:57 -03 2005


ola Frederico,

entendi... mas um lance desses teria que testar, e eu nao posso fazer 
isso agora, pois estou no linux, tentando instalar o delphi no wine...


mas tente fazer algo tipow assim:

CREATE PROCEDURE SPR_RETORNA_EMPRESA
(
  prmUF VARCHAR(2)
)
RETURNS(
  rCODIGO INTEGER,
  rNOME VARCHAR(100),
  rLOCALIDADE VARCHAR(50),
  rUF VARCHAR(2)
)
AS
BEGIN
  if (:prmUF IS NULL) then
    FOR SELECT CODIGO, NOME, LOCALIDADE, UF
    FROM AUDIT_EMPRESA
    ORDER BY NOME
    INTO :rCODIGO, :rNOME, :rLOCALIDADE, :rUF
  else
    FOR SELECT CODIGO, NOME, LOCALIDADE, UF
    FROM AUDIT_EMPRESA
    where uf = :prmUF
    ORDER BY NOME
    INTO :rCODIGO, :rNOME, :rLOCALIDADE, :rUF
DO
SUSPEND;
END

se nao der certo assim, tente improvisar, tipow assim fazendo algo 
semelhante a isso ae abaixo:

CREATE PROCEDURE SPR_RETORNA_EMPRESA
(
  prmUF VARCHAR(2)
)
RETURNS(
  rCODIGO INTEGER,
  rNOME VARCHAR(100),
  rLOCALIDADE VARCHAR(50),
  rUF VARCHAR(2)
)
AS
BEGIN
  if (:prmUF IS NULL) then
    begin
    FOR SELECT CODIGO, NOME, LOCALIDADE, UF
    FROM AUDIT_EMPRESA
    ORDER BY NOME
    INTO :rCODIGO, :rNOME, :rLOCALIDADE, :rUF
    do
    suspend;
    end

  else
    begin
    FOR SELECT CODIGO, NOME, LOCALIDADE, UF
    FROM AUDIT_EMPRESA
    where uf = :prmUF
    ORDER BY NOME
    INTO :rCODIGO, :rNOME, :rLOCALIDADE, :rUF
    do
    suspend;
    end

END



boa sorte ae...


[]s
força sempre.
ate +++

--
Luiz "RedDevil" Stefanski
http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
exemplos e dicas sobre o IBObjects:
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
compilaçao/instalaçao do IBObjects sabor BPG:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630



Post By Frederico Fernandes:
> 
> Valeu,
>   Mas eu gostaria de verificar se o parametro "prmUF" nao esta vazio. 
> Porque se ele estiver vazio nao vou colocar o filtro. Entendeu ??? Ou 
> seja , teria como colocar por exemplo um "If" para checar se esta em 
> branco e se nao estiver colocar a linha: "where uf = :prmUF "
> 
>> From: RedDevil <reddevil em reddevil.eti.br>
>> Reply-To: FireBase <lista em firebase.com.br>
>> To: FireBase <lista em firebase.com.br>
>> Subject: Re: [firebase-br] StoredProcedure com Parametros
>> Date: Mon, 15 Aug 2005 18:04:53 -0300
>>
>> ola Frederico,
>>
>>
>> tenta assim:
>>
>>
>> CREATE PROCEDURE SPR_RETORNA_EMPRESA
>> (
>>  prmUF VARCHAR(2)
>> )
>> RETURNS(
>>  CODIGO INTEGER,
>>  NOME VARCHAR(100),
>>  LOCALIDADE VARCHAR(50),
>>  UF VARCHAR(2)
>> )
>> AS
>> BEGIN
>>  FOR SELECT CODIGO, NOME, LOCALIDADE, UF
>>  FROM AUDIT_EMPRESA
>>  where uf = :prmUF  /* esta linha vai fazer o "filtro" */
>>  ORDER BY NOME
>>  INTO :CODIGO, :NOME, :LOCALIDADE, :UF
>> DO
>> SUSPEND;
>> END
>>
>>
>> []s
>> força sempre.
>> ate +++
>>
>> -- 
>> Luiz "RedDevil" Stefanski
>> http://www.RedDevil.eti.br - Delphi 4 Powered by IBObjects
>> exemplos e dicas sobre o IBObjects:
>> http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165
>> compilaçao/instalaçao do IBObjects sabor BPG:
>> http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630
>>
>>
>>
>> Words By Frederico Fernandes:
>>
>>> Boa tarde Pessoal,
>>>
>>>  Tenho a seguinte StoreProcedure:
>>>
>>> CREATE PROCEDURE SPR_RETORNA_EMPRESA
>>> (
>>>  prmUF VARCHAR(2)
>>> )
>>> RETURNS(
>>>  CODIGO INTEGER,
>>>  NOME VARCHAR(100),
>>>  LOCALIDADE VARCHAR(50),
>>>  UF VARCHAR(2)
>>> )
>>> AS
>>> BEGIN
>>>  FOR
>>>  SELECT CODIGO, NOME, LOCALIDADE, UF
>>>  FROM AUDIT_EMPRESA ORDER BY NOME
>>>  INTO :CODIGO, :NOME, :LOCALIDADE, :UF
>>> DO
>>> SUSPEND;
>>> END
>>>
>>>
>>> Estou querendo usar filtrosnesta stored procedure. Como por exemplo 
>>> se eu passar a UF no parametro ele adicionar mais uma linha no 
>>> Select. A linha então seria: "WHERE UF = :prmUF" ?? Como que eu faria 
>>> isso ??? Colocaria: If (prmUF <> '') ???
>>>
>>> Obrigado





Mais detalhes sobre a lista de discussão lista