[firebase-br] Problema com Execute Statement com Insert

Andrei Luís compuvale.software em gmail.com
Ter Maio 23 09:45:25 -03 2006


Adriano,

Obrigado pela sua resposta, mas QuotedStr é uma função do Delphi, e
esse lance aí tá ocorrendo dentro de uma SP.

[]
Andrei

Em 23/05/06, Adriano Santos<doiscliques em yahoo.com.br> escreveu:
> Com QuotedStr não funciona será?
>
>   wSQL1 ='Insert into teste Values(0, ' || ' + QuotedStr(RF) + ' || ', ''' || wdataven
> || ''')';
>
> 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"
> To: "Firebase"
>
> 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,1148352784.419014.22460.aldavila.hst.terra.com.br,5345,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/
>
>
>
>
>
> ______________________________________________
> 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
>
>
>
> Adriano Santos
> Colunista SQLMagazine e ClubeDelphi
> Comissão Editorial da revista ClubeDelphi
>
> ---------------------------------
>  Yahoo! Search
>  Música para ver e ouvir: You're Beautiful, do James Blunt
> ______________________________________________
> 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
>


-- 
[]s
Andrei

Win XP Pro + D4 Pro / D2006 Pro + FB 1.5.2 + IBO 4.6B




Mais detalhes sobre a lista de discussão lista