PROCEDURE DE SELECT FIREBIRD

HUELBERT 19/08/2009 11:29:43
#320235
Opa galera
Gente precisando de uma ajuda de vcs.
To com o seguinte problema, criei uma stored procedure de select de um jeito que sirva pra todas as necessidades minhas.

SET TERM ^ ;

CREATE PROCEDURE TUSU_SEL (
patip varchar(3),
pabus varchar(15))
returns (
codusu integer,
nomusu varchar(15),
senusu varchar(10))
as
begin
if (:patip=[ô][ô]) then
begin
for select codusu,
nomusu
from tusu
order by nomusu
into :codusu,
:nomusu
do
suspend;
end
else if (:patip=[ô]ALL[ô]) then
begin
for select codusu,
nomusu,
senusu
from tusu
where codusu = :pabus
into :codusu,
:nomusu,
:senusu
do
suspend;
end
else if (:patip=[ô]COD[ô]) then
begin
for select codusu,
nomusu
from tusu
where codusu starting :pabus
order by codusu
into :codusu,
:nomusu
do
suspend;
end
else if (:patip=[ô]NOM[ô]) then
begin
for select codusu,
nomusu
from tusu
where nomusu starting :pabus
order by nomusu
into :codusu,
:nomusu
do
suspend;
end
end^

SET TERM ; ^

GRANT ALL ON TUSU TO PROCEDURE TUSU_SEL;

GRANT EXECUTE ON PROCEDURE TUSU_SEL TO SYSDBA;


Ela funciona da seguinte maneira:

patip = seleciono que tipo de pesquisa vou fazer, se e pelo nome ou pelo codigo, pra mostrar todos os parametros de retorno ou so os de busca mesmo
pabus = parametro de selecao por campo

Funciona perfeitamente minha procedure, mas o unico problema e o seguinte, quando passo o parametro (patip = [ô][ô]) o select tinha que mostrar so os parametros de retorno (codusu e nomusu), mas como eu executo a procedure com ( select * tusu_sel([ô][ô],[ô][ô]) ) todos os retornos vem no dbgrid,
queria que os que nao forem mencionados nao aparecam.

Alguem pode me ajudar?

Aguardo
HUELBERT 20/08/2009 09:49:04
#320393
Galera ninguem consegue me ajuda no meu problema?
Tópico encerrado , respostas não são mais permitidas