[firebase-br] Plobemas com Stored Procedure
Stock
stock_rp em yahoo.com.br
Qua Nov 23 16:39:38 -03 2005
Estou enviando a procedure abaixo, que faz uma leitura na tabela de
funcionarios e efetua o lançamento dos salarios relativo ao mes informado,
precisava tirar uma duvida caso possam me ajudar...
se utilizo-a com o parametro de saida --> CERTO , ela funciona normal, ou
seja faz a varredura dos registros e efetua os lançamentos, mas se retiro
este parametro, ela simplesmente lança so o primeiro lançamento, gostaria de
uma explicação para isso se possivel, nao achei nada que pudesse me tirar
essa duvida
CREATE PROCEDURE LANCA_SALARIO (
DIG CHAR(3),
REF CHAR(7))
RETURNS (
CERTO INTEGER)
AS
DECLARE VARIABLE CODIGO VARCHAR(7);
DECLARE VARIABLE TEM INTEGER;
DECLARE VARIABLE SALARIO DECIMAL(15,2);
begin
CERTO = 0;
FOR SELECT "salario","codigo" from "func" where "ativo"='X' and "ddem" is
null order by 2 into :salario, :codigo
do
begin
FOR select cast(count("codigo")as integer) FROM "lanfunc" where "ref"=:ref
and "codigo"=:codigo and "hist"='1' into :tem
do
begin
CERTO = :CERTO +1;
if (:tem=0) then
begin
insert into "lanfunc" ("codigo", "ref", "hist", "tipo", "valor", "data",
digi")values(:codigo,:ref,'1','C',:salario,current_date,:dig);
end
else
begin
update "lanfunc" set "valor"=:salario where "ref"=:ref and "codigo"=:codigo
and "hist"='1';
end
suspend;
end
suspend;
end
suspend;
end
_______________________________________________________
Yahoo! Acesso Grátis: Internet rápida e grátis.
Instale o discador agora!
http://br.acesso.yahoo.com/
Mais detalhes sobre a lista de discussão lista