[firebase-br] Problema com Execute Statement com Insert

Kléber Caneva kdcc em terra.com.br
Ter Maio 23 14:56:40 -03 2006


Eu acho que so não usa ela para cmapos numericos...

[]´s

Kléber Caneva

----- Original Message ----- 
From: "Andrei Luís" <compuvale.software em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, May 23, 2006 9:50 AM
Subject: Re: [firebase-br] Problema com Execute Statement com Insert


Graaaaaaande Kléber,

O troféu cata piolho, proposto pelo Luiz "RedDevil", vai pra ti.

Báh, eu juro que eu até pensei na dica que tu já tinha me dado antes
do duplo apostrofe, mas errei em sequer testar, pois pensei se
aplicava somente a strings... :-(

Quanto mais aprendo, mais me convenço que tenho muito a aprender ainda...

[]
Andrei

Em 23/05/06, Kléber Caneva<kdcc em terra.com.br> escreveu:
> Tente utilizando o duplo-apostrofe para a data tb.:
>
>   wSQL1 ='Insert into teste Values(0, ' || '''RF''' || ', ''' || wdataven
> || ''')';
>
> ou fazendo um Cast
>
>   wSQL1 ='Insert into teste Values(0, ' || '''RF''' || ', ''' || CAST(
> wdataven as CHAR(10)) || ''')';
>
>
> []´s
>
> Kléber Caneva
>
>
>
> ----- Original Message -----
> From: "Andrei Luís" <compuvale.software em gmail.com>
> To: "Firebase" <lista em firebase.com.br>
> Sent: Monday, May 22, 2006 11:52 PM
> Subject: [firebase-br] Problema com Execute Statement com Insert
>
>
> Continuo na minha via crucis pra fazer um insert via SP.
>
> Bem, a ideia é fazer um select em uma tabela para recuperar uns
> valores, entre eles diversas datas de vencimento e valores de faturas.
>
> O último problema que estou tendo é não conseguir fazer o insert de
> uma variável data em um campo data.
>
> Tabela de teste:
>
> CREATE GENERATOR GEN_TESTE_REGISTRO_ID;
>
> CREATE TABLE TESTE (
>    REGISTRO_ID  INTEGER,
>    TESTE        VARCHAR(250),
>    DATA         DATE
> );
>
> SET TERM ^ ;
>
> CREATE TRIGGER TESTE_BI FOR TESTE
> ACTIVE BEFORE INSERT POSITION 0
> AS
> BEGIN
>    NEW.REGISTRO_ID = GEN_ID(GEN_TESTE_REGISTRO_ID,1);
> END
> ^
>
> SET TERM ; ^
>
>
> A SP de teste:
>
> SET TERM ^ ;
>
> CREATE PROCEDURE NEW_PROCEDURE
> AS
> DECLARE VARIABLE WSQL1 VARCHAR(100);
> DECLARE VARIABLE WDATAVEN DATE;
> begin
>   wdataven = current_date;
>   wSQL1 ='Insert into teste Values(0, ' || '''RF''' || ', ' || wdataven ||
> ')';
>   execute statement wsql1;
> end
> ^
> SET TERM ; ^
>
> Joguei current_date apenas para teste, a variável wdataven será
> preenchida com uma data recuperada em um select.
>
> Ao executar, dá erro :
> Overflow occurred during data type conversion.
> conversion error from string "1979".
>
> Se troco o sql dessa forma:
> wSQL1 ='Insert into teste Values(0, ' || '''RF''' || ', wdataven' || ')';
>
> Ao executar dá erro de column unknow wDataven
>
> Se faço assim dá certo, mas não é current_date que preciso armazenar...
> wSQL1 ='Insert into teste Values(0, ' || '''RF''' || ', current_date' ||
> ')';
>
> Já tentei fazer cast( wdataven as Date) na linha onde monto o SQL e
> cast(current_date as Date) na linha onde atribuo o valor à variável, e
> o resultado é o mesmo.
>
> O mais "legal": se tiro o '''RF''' e coloco wdataven no lugar,
> funciona!!! Grava o mesmo 1979 que aparece em um dos erros acima.
>
> Onde estou errando? Porque não grava uma variável data em um campo
> data, e grava uma variável data em um campo varchar???
>
> []s
> Andrei

______________________________________________
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

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1148389297.333778.21222.ambrose.hst.terra.com.br,6635,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 22/05/2006 / Versão: 
4.4.00/4767
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista