[firebase-br] STORED PROCEDURE
Eduardo Baião
eduardobaiao em gmail.com
Qua Jan 17 11:45:11 -03 2007
Vc precisa pesquisar um pouco mais.
Stored Procedures no FB usando um código um poquinho mais complicado.
Veja um exemplo de uma proc simples:
SET TERM ^ ;
CREATE PROCEDURE PRCDADOSDOPACIENTE (
NCODPAC INTEGER)
RETURNS (
NOME VARCHAR(60),
SEXO CHAR(1),
FONE1 VARCHAR(20),
FONE2 VARCHAR(20),
DATNAS TIMESTAMP,
IDADE SMALLINT,
TIPOMENSTRUA SMALLINT,
CODEMP VARCHAR(4),
CODCONV VARCHAR(6),
CODUNID VARCHAR(4),
CODATEND INTEGER,
DATATEND TIMESTAMP,
MATRICULA VARCHAR(25),
PLANO VARCHAR(20),
PADRAO VARCHAR(15),
EMPRESA VARCHAR(40),
DEPENDENCIA VARCHAR(6),
TITULAR VARCHAR(60),
DATADMISSAO TIMESTAMP,
DATVALIDADE TIMESTAMP,
DATVENCTO TIMESTAMP,
DATPAGTO TIMESTAMP,
CARTPROF VARCHAR(15),
ALTURAPAC FLOAT)
AS
begin
For
select first 1
p.nome,
p.sexo,
p.fone1,
p.fone2,
p.datnas,
p.idade,
p.tipomenstrua,
a.codemp,
a.codunid,
a.codatend,
a.datatend,
a.codconv,
a.matricula,
a.plano,
a.padrao,
a.empresa,
a.dependencia,
a.titular,
a.datadmissao,
a.datvalidade,
a.datvencto,
a.datpagto,
a.cartprof,
a.alturapac
From paciente p
left join atendimento a
on ( a.codpac = p.codpac ) and
( a.matricula <> '' )
Where
( p.codpac = :nCodPac )
Order By a.datatend desc
Into :NOME, :SEXO, :FONE1, :FONE2, :DATNAS, :IDADE, :TIPOMENSTRUA,
:CODEMP, :CODUNID, :CODATEND, :DATATEND, :CODCONV,
:MATRICULA, :PLANO, :PADRAO, :EMPRESA, :DEPENDENCIA, :TITULAR,
:DATADMISSAO, :DATVALIDADE, :DATVENCTO, :DATPAGTO,
:CARTPROF, :ALTURAPAC
do begin
if ( alturapac is null ) then begin
select first 1
a.alturapac
From paciente p
left join atendimento a
on ( a.codpac = p.codpac ) and
( a.alturapac is not null )
Where
( p.codpac = :nCodPac )
Order By a.datatend desc
Into :ALTURAPAC;
end
suspend;
end
end
^
SET TERM ; ^
Mais detalhes sobre a lista de discussão lista