[firebase-br] ajuda com stored procedure que não funciona
Reijanio Nunes Ribeiro
rnribeiro em gmail.com
Sáb Maio 29 06:54:37 -03 2010
boa noite a todos estou tendo problemas com essa stored procedure pois
usando o ibexpert funciona mais quando tento fazer usando o delphi
simplesmente não funciona, se puderem me ajudar agradeço se acharem que esse
assunto é off por ter sintaxe do delphi me desculpem
segue abaixo a sintaxe
procedure TF_Ordem_Servico.
spbconfirmarClick(Sender: TObject);
begin
cdspecas.First;
cdsserv.First;
edita_qtde;
f_DMM.C_Os.ApplyUpdates(0);
status_os;
copiaregistro;
copiaservico;
//status_os;
f_DMM.D_Os.ApplyUpdates(0);
F_dmm.D_Servico_OS.ApplyUpdates(0);
baixa_estoque;
ListaStatus.Text :='';
//chamda da stored procedure
procedure TF_Ordem_Servico.status_os;
begin
while not cdspecas.eof do
begin
sp_status.Params[0].AsInteger := DbEdit19.Field.AsInteger;
sp_status.Params[1].AsString := cdspecasCOD_LOCAL.AsString;//esse campo
precisa dum laço pra pegar todos os registros
sp_status.Params[2].AsInteger := DbEdit1.Field.AsInteger;
sp_status.ExecProc;
cdspecas.Next;
f_dmm.Estoque.Close;
f_dmm.Estoque.Open;
end;
end;
//sitaxe da sp
CREATE OR ALTER PROCEDURE SP_STATUS_OS (
emp integer,
local char(3),
cod_os integer)
as
declare variable v_status char(1);
declare variable codprod varchar(18);
declare variable qtde numeric(10,2);
begin
select STATUS from c_ordemservico
where codigo = :cod_os
into :v_status;
select d.codprod, d.qtde from d_servico_os d
where d.cod_os = :cod_os
into :codprod,:qtde;
if (:v_status = 'A')then
update estoque e set
e.qtde_reserv = e.qtde_reserv + :qtde,
e.saldo = e.qtde_disp - e.qtde_reserv
where e.codprod = :codprod and e.cod_local = :local and e.cod_emp =
:emp;
if (:v_status = 'F')then
update estoque e set
e.qtde_reserv = e.qtde_reserv - :qtde,
e.saldo = e.qtde_disp - e.qtde_reserv
where e.codprod = :codprod and e.cod_local = :local and e.cod_emp =
:emp;
if (:v_status = 'C')then
update estoque e set
e.qtde_reserv = e.qtde_reserv - :qtde,
e.saldo = e.qtde_disp - e.qtde_reserv
where e.codprod = :codprod and e.cod_local = :local and e.cod_emp =
:emp;
end
desde já agradeço
Mais detalhes sobre a lista de discussão lista