[firebase-br] SP que executa somente a parte inicial, o restante não

NextCorp Informática nextcorp em terra.com.br
Qua Abr 22 12:26:34 -03 2009


Caros colegas

Estou com uma SP, que executada de dentro do sistema, em delphi, executa somente a primeira parte da SP e o restante não.
Se executo no Ibexpert, funciona normalmente.

Segue o código tanto da rotina que chama e a rotina:

{ Executa SP inserir cabecalho e itens da NFS }
     with dmDados.IB_StoredProc1 do
          begin
               Close;
               StoredProcName:= 'SP_INSERIR_CAB_ITENS_NFS_BALCAO';
               ParamByName('wcodigo').asInteger:= wcli_codigo;                       // traz do formCadastroCliente
               ParamByName('wvendedor').asInteger:= wcli_ven_codigo;
               ParamByName('wcontrole').asInteger:= wnfe_controle;
               if not Prepared then
                  Prepare;
               ExecProc;
               wnfs_controle:= FieldByName('wnfs_controle').asInteger;
           end;
     {final}

CREATE OR ALTER PROCEDURE SP_INSERIR_CAB_ITENS_NFS_BALCAO (
    wcodigo integer,
    wvendedor integer,
    wcontrole integer)
returns (
    wnfs_controle integer,
    witem integer,
    wproduto integer,
    wfabricante integer,
    wrecipiente char(10),
    winmetro char(15),
    wdtfab date,
    wdtret date,
    wdtrec date,
    wdtalv date)
as
begin
  /* Inserir o cabecalho no NFS */    está parte executa normalmente
  insert into nf_saida(nfs_controle, nfs_numero, nfs_cli_codigo, nfs_dt_emissao, nfs_total, nfs_situacao, nfs_ven_codigo, nfs_fpa_codigo)
  values(Gen_id(gen_controle_nfe_nfs_id, 1), 0, :wcodigo, current_date, 0, 'S', :wvendedor, 0) returning nfs_controle into :wnfs_controle;

  /* Inserir os itens da NFS */          está parte não executa
  for
     select infe_item, infe_pro_codigo, infe_fab_codigo, infe_num_recipiente, infe_inmetro, infe_dt_fabricacao, infe_dt_reteste, infe_dt_recarga, infe_dt_alvara
     from nf_entrada_itens
     where infe_controle = :wcontrole
     into :witem, :wproduto, :wfabricante, :wrecipiente, :winmetro, :wdtfab, :wdtret, :wdtrec, wdtalv
  do
     begin
        insert into nf_saida_itens(infs_item, infs_controle, infs_infe_item, infs_infe_pro_codigo, infs_fab_codigo, infs_num_recipiente, infs_inmetro, infs_dt_fabricacao, infs_dt_reteste, infs_dt_recarga, infs_dt_alvara, infs_preco_total, infs_num_ordem)
        values(Gen_id(gen_nf_saida_itens_id, 1), :wnfs_controle, :witem, :wproduto, :wfabricante, :wrecipiente, :winmetro, :wdtfab, :wdtret, :wdtrec, :wdtalv, 0, 0);
     end
  suspend;
end^






Atenciosamente

Washington André Muller da silva

#######################
NextCorp Informática Ltda
www.nextcorp.com.br
nextcorp em terra.com.br
0xx-(51)-3037-6605
#######################


Mais detalhes sobre a lista de discussão lista