Fórum Delphi não aceita valores acima de 10 milhões #236339

05/06/2004

0

Tenho um campo no interbase que está como NUMERIC 18,8, no interbase ele aceita valores acima de 10 milhões, mas no delphi, a partir do meu sistema, ele não aceita. O campo está como FMTBCDField.


Phfdelphi

Phfdelphi

Responder

Posts

05/06/2004

Bon Jovi

Será q é um bug do dbExpress? A precisão vem errada no TField. Tente então setar na mão. Exemplo:

procedure TForm1.FormCreate(Sender: TObject);
begin
  SQLDataSet1VALOR.Precision := 18; 
  SQLDataSet1.CommandText := ´SELECT VALOR FROM TABELA´;
  try
    SQLDataSet1.Open;
    ShowMessage(SQLDataSet1.FieldByName(´VALOR´).AsString); //Valor q está no banco: "10000000.12345678"
  finally
    SQLDataSet1.Close;
    SQLDataSet1.SQLConnection.Connected := False;
    Application.Terminate;
  end;
end;



Responder

Gostei + 0

07/06/2004

Phfdelphi

Nem compilou, deu a seguinte mensagem:
[Fatal Error] Unit1.pas(7): Unit SqlExpr was compiled with a different version of SqlConst.SDRIVERREG_SETTING


Responder

Gostei + 0

07/06/2004

Eniorm

Nem compilou, deu a seguinte mensagem: [Fatal Error] Unit1.pas(7): Unit SqlExpr was compiled with a different version of SqlConst.SDRIVERREG_SETTING


Recompile a unit [b:d14d710479]SqlConst.pas[/b:d14d710479]
depois copie para as pastas:
$(DELPHI)\Lib
$(DELPHI)\Lib\Debug


Responder

Gostei + 0

07/06/2004

Eniorm

[quote:121d855250=´Enio Marconcini´]
Recompile a unit [b:121d855250]SqlConst.pas[/b:121d855250]
depois copie para as pastas:
$(DELPHI)\Lib
$(DELPHI)\Lib\Debug[/quote:121d855250]
Esqueci, depois de compilar, copie o arquivo dcu [b:121d855250]SqlConst.dcu[/b:121d855250]
para as pastas indicadas...


Responder

Gostei + 0

09/06/2004

Phfdelphi

Abri a unit citada mas não é possível compilar....


Responder

Gostei + 0

26/06/2004

Phfdelphi

Ainda não consegui resolver esse problema, alguém poderia me ajudar ou explicar como trabalhar com valores altos no delphi?


Responder

Gostei + 0

26/06/2004

Bon Jovi

O q eu tenho pra dizer é o mesmo. Se não compilou, tem algo muito estranho no seu Delphi. Sendo melhor reinstalar se esses problemas ainda persistem.

Falando novamente em outras palavras: Se o campo na base Interbase é NUMERIC(18,8 ), entao no no TField correspondente ao campo, a propriedade Precision deverá estar configurado pra 18. Como visto no experimento que fiz, de forma automática o Delphi/DbExpress não retorna corretamente a precisão neste caso. Aquele código era só pra ilustrar, mas a mudança de fato que vc deve fazer é só alterar o Precision. Mesmo assim aquele código compila, claro tendo no Uses as units das classes usadas.


Responder

Gostei + 0

26/06/2004

Aroldo Zanela

Tenho um campo no interbase que está como NUMERIC 18,8, no interbase ele aceita valores acima de 10 milhões, mas no delphi, a partir do meu sistema, ele não aceita. O campo está como FMTBCDField.

Colega,

Qual o mecanismo de acesso ao banco (IBX, BDE, DBX, ADO, etc)? Está utilizando Dialeto 1?


Responder

Gostei + 0

04/07/2004

Phfdelphi

Estou utilizando IBX com dialeto 3, já instalei o delphi em outros computadores e o problema continua...


Responder

Gostei + 0

05/07/2004

Jasig Aurumalfa

Tem um macete usado nesses casos, mas não confirmo se é seguro...
É pegar o valor, e quando ele for registrado, você divide por 2, e na hora de ele imprimir, você o multiplica por 2...


Responder

Gostei + 0

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

Aceitar