[firebase-br] Preciso de ajuda com Execute Statement

Renato Bermudo renato em eturbo.com.br
Qui Ago 9 17:25:41 -03 2007


Olá pessoal!

Preciso de uma ajuda com um bloco 'Execute Statement' executado em uma trigger.
O que está ocorrendo é que eu consigo concatenar vários tipos de variaveis, mas quando se trata de váriavel tipo DATE, ele retorna um erro, já tentei de tudo, se alguém puder me ajudar, o código é o seguinte:

    declare variable v_sql varchar(255);
    begin
      v_sql='';

      if (coalesce(new.apr_pgr_codigo,0)>0) then
        v_sql='pro_pgr_codigo='||new.apr_pgr_codigo;

      if (coalesce(new.apr_psg_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_psg_codigo='||new.apr_psg_codigo;
      end

      if (coalesce(new.apr_pse_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_pse_codigo='||new.apr_pse_codigo;
      end

      if (coalesce(new.apr_pma_codigo,0)>0) then
      begin
        if (v_sql<>'') then
          v_sql=v_sql||' and ';

        v_sql=v_sql||'pro_pma_codigo='||new.apr_pma_codigo;
      end

      execute statement
      'update produtos set
      pro_precopromocao=udf_rounddec(pro_precovenda-(pro_precovenda*'||
      cast(coalesce(new.apr_pdescpromocao,0) as varchar(15))||'/100),2),
      pro_dtiniciopromocao='||cast(new.apr_dtiniciopromocao as varchar(10))||',
      pro_dtfimpromocao='||cast(new.apr_dtfimpromocao as varchar(10))||
      ' where '||:v_sql;

Estou utilizando o 'Execute Statement' somente pelo filtro utilizado pela cláusula where.



Mais detalhes sobre a lista de discussão lista