Re: [firebase-br] FB tá fazendo cálculo matemático com conteúdo de varchar

omar l m rosa omar em conesul.inf.br
Seg Jul 16 16:49:38 -03 2007


tá faltando as aspas!!!!


o sql ficará assim:     ''',''' || :wnrfatura  ||  ''', '|| ' current_date 
'||
            antes era:    ''',' || :wnrfatura  ||  ', '|| ' current_date '||

capisco?
omar


----- Original Message ----- 
From: "Andrei Luís" <compuvale.software em gmail.com>
To: "Firebase" <lista em firebase.com.br>
Sent: Monday, July 16, 2007 3:47 PM
Subject: [firebase-br] FB tá fazendo cálculo matemático com conteúdo de 
varchar


Seguinte, tenho uma SP que disparo quando uma nota fiscal é emitida
para fazer o lançamento no financeiro. Tá tudo perfeito, só um detalhe
tá me deixando de cabelo branco, lanço no financeiro o nr do
documento, que nesse cado é o nr da nota fiscal / nr da parcela, ex:

7800/01
7800/02
7800/03

Só que ao inves de gravar como aí acima, tá gravando o resultado do 
"calculo".

Não tô entendendo pois tá tudo declarado como Varchar. O campo onde
está sendo inserido, a variável na SP tá declarada como varchar, o
campo de onde busco o nr da fatura tá como varchar...

Já fiz cast (wnrFatura as varchar(10)) mas dá sempre na mesma.

Alguém tem alguma dica? Abaixo trechos da SP:


declare variable nr_fatura1 varchar(10);
declare variable nr_fatura2 varchar(10);
declare variable nr_fatura3 varchar(10);
declare variable wnrfatura char(10);

Select fatura1, fatura2, fatura3,
          dataven1, dataven2, dataven3,
          nr_fatura1, nr_fatura2, nr_fatura3
     from notasFiscais
     where registro_id = :wnotafiscal_id
      into wfatura1, wfatura2, wfatura3,
           wdataven1, wdataven2, wdataven3,
           nr_fatura1, nr_fatura2, nr_fatura3;

x = 1;
   while (x < 11)  do
      begin
         if (x = 1) then
            begin
               wDataven = wDataven1;
               wfatura = wfatura1;
               wnrfatura = :wnrnf || '/01'  ;
            end
         if (x = 2) then
            begin
               wDataven = wdataven2;
               wfatura = wfatura2;
               wnrfatura = Cast(:wnrnf || '/02' as varchar(10)) ;
            end
         if (x = 3) then
            begin
               wDataven = wdataven3;
               wfatura = wfatura3;
               wnrfatura = nr_fatura3;
            end

wSQL1 ='Insert into Financeiro (Registro_id, tipo, cadastrado, 
cedente_id,'||
                               'cedente_nome, historico, documento,
dataemissao, '||
                               'datavencimento, valorProjetado,
datapagamento, '||
                               'valorRealizado, quitado, quitado_data, '||
                               'cancelado, cancelado_data, obs, '||
                               'notafiscal_id, parcela) '||
                        'Values(0, ' || '''RF''' || ', ' || '''T''' ||
                               ', '|| :wcliente_id ||
                                ',(Select nome from agenda where
agenda.registro_id = ' || :wcliente_id || ')'
         || ',' ||'''FATURA   - PARCELA  ' || :x || ' DE ' ||
:wparcelas || ' REF. NF NR ' || :wnrnf ||
         ''',' || :wnrfatura  ||  ', '|| ' current_date '||
         ', ''' || Cast(:wdataven as Varchar(10))|| ''',' ||
         :wfatura || ', null, 0, ' || '''F''' || ', null, ' || '''F''' ||
         ', null, null, '||:wnotafiscal_id ||', '  || :x || ')';

         if (:wFatura > 0) then
            begin
              Execute Statement wSQL1;
            end
         x = x+1;
      end


[]s
Andrei

Win XP Pro + D2006 Pro + FB 2.0.1 + IBO 4.7.16

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista