[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