Fórum erro sql #383718

16/08/2010

0

bom dia galera estou com uma mensagem de erro que nao estou conseguindo solucionar, a mensagem e a seguinte: "dynamic sql error code=-104 as approximate floating point values in sql dialect 1 but as 64 bit" eu uso banco de dados firebird, e conexao com ibtable e consultas com ibsql, essa mensagem apareceu depois que fiz algumas consultas no formulario de vendas quando vou salvar a tabela aparece a mensagem se alguem puder me ajudar ficarei grato !
Willian Bento

Willian Bento

Responder

Posts

16/08/2010

Eriley Barbosa

Veja se a propriedade SQLDialect do seu IbDatabase tem o Valor 3 e se nos parâmetros tem o CharacterSet correto, tipo lc_ctype=ISO8859_1.   Atenciosamente   Eriley
Responder

Gostei + 0

16/08/2010

Willian Bento

obrigado pela ajuda mas ja tentei isso tambem so que nao deu nada continua com o erro !!
Responder

Gostei + 0

16/08/2010

Eliézio Mesquita

Boa tarde,

Willian, coloca ai sua instrução SQL, para verificarmos o que pode ser.

Abraço.

Eliézio Mesquita
Responder

Gostei + 0

16/08/2010

Willian Bento

procedure TfrmVendas.pesquisacliente; //procedimento para pesquisar clientes;
var a: string;
begin
      a:= 'select * from clientes where cod_cli = ' + CodCli.Text;
      with dmDados.Cons_cli do
      begin
          Close;
          SQL.Clear;
          SQL.Add(a);
          Open;
      end;
end;

pesquisacliente; //aqui e colocado no evento on exit do campo codigo cliente;
if dmDados.Cons_cli.RecordCount > 0 then
begin
dmDados.TsaipaiCODCLI_SAIPAI.Value := dmDados.Cons_cli.fieldbyname('cod_cli').AsInteger;
dmDados.TsaipaiNOMECLI_SAIPAI.Value := dmDados.Cons_cli.fieldbyname('nome_cli').AsString;
CodVend.SetFocus;
end
else
begin
ShowMessage('Cliente nao Cadastrado !!!!');
CodVend.SetFocus;
Exit;
end;

daqui para baixo uso para pesquisar produto !

procedure TfrmVendas.pesquisaproduto;
var a: string;
begin
      a:= 'select * from estoque where cod_est = ' + CodProd.Text;
      with dmDados.Cons_prod do
      begin
          Close;
          SQL.Clear;
          SQL.Add(a);
          Open;
      end;
END;



procedure TfrmVendas.CodProdExit(Sender: TObject);
begin
      pesquisaproduto;
      if dmDados.Cons_prod.RecordCount > 0 then
      begin
          dmDados.TdetSaipaiCOD_PROD_DET.Value := dmDados.Cons_prod.fieldbyname('cod_est').AsInteger;
          dmDados.TdetSaipaiNOMEPROD_DET.Value := dmDados.Cons_prod.fieldbyname('descricao_est').AsString;
          dmDados.TdetSaipaiVALORPROD_DET.Value := dmDados.Cons_prod.fieldbyname('precovenda_est').AsFloat;
          QuantProd.SetFocus;
      end
      else
      begin
        ShowMessage('Produto nao Cadastrado !!!!');
        CodProd.SetFocus;
        Exit;
      end;
end;

Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Pela mensagem pode ser erro de characterSet ou seu banco foi construido com Dialeto 1.   Atenciosamente   Eriley
Responder

Gostei + 0

16/08/2010

Willian Bento

mas ele foi construido em dialeto 3 e tambem ja tentei mudar a tabela de caracteres mas nada adiantou !
Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Também pode ser de versão do firebird, tipo criar uma tabela utilizando um novo recurso da versão 2 e depois rodar seu programa utilizando a versão 1.5.   Atenciosamente   Eriley
Responder

Gostei + 0

16/08/2010

Willian Bento

se for problema de versao como faço para corrigir isso ? realmente acho que vc tem razao, antes eu utilizava versao 1.5 depois no  meio do projeto passei para versao 2.1, mas sempre utilizei dialeto 3, vc tem msn me passa para nos trocarmos ideia, pois sou novato em delphi e preciso de ajuda de um programador com mais experiencia !
Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Você consegue fazer insert nestas duas tabelas, pelo ibexpert ou iboconsole, vou resaltar novamente pelo que eu sei este erro acontece em um banco construido em Dialeto 1 ou Caracter set errado?     Veja este link no forum: http://forum.devmedia.com.br/viewtopic.php?t=84083&sid=2299619c1b7bd25e6b204fc65f50ced6   Atenciosamente
Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Você consegue fazer insert nestas duas tabelas, pelo ibexpert ou iboconsole, vou resaltar novamente pelo que eu sei este erro acontece em um banco construido em Dialeto 1 ou Caracter set errado?     Veja este link no forum: http://forum.devmedia.com.br/viewtopic.php?t=84083&sid=2299619c1b7bd25e6b204fc65f50ced6   Atenciosamente
Responder

Gostei + 0

16/08/2010

Willian Bento

mas se ele foi construido em dialeto 1 como faço para converter para dialeto 3 ? 
Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Use a ferramenta IBDataPump, qual versão do Delphi esta utilizando e qual a extensão do seu banco(.gdb, .fdb, etc....)?   Atenciosamente   Eriley
Responder

Gostei + 0

16/08/2010

Willian Bento

estou usando o delphi 7 e banco firebird (.fdb)

Responder

Gostei + 0

16/08/2010

Eriley Barbosa

Tente recriar o seu banco para Dialeto 3, mas com a extensão .gdb, pois, o IBX que vem com o Delphi é muito velho e talvez seja isso que está causando problema também.   Atenciosamente   Eriley
Responder

Gostei + 0

16/08/2010

Fernando Farah

já tentou mudar o tipo do campo ?
bye
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar