Fórum Valor monetario #238129

16/06/2004

0

Olá pessoal
Criei um campo em uma (DECIMAL 15,2) tabela no interbase 7.1
acesso essa tabela com deexpress e clientedataset e no clientdataset coloco ele como currency.
Coque acontece é o seguinte neste campo se coloco R$110,00 ao terminar de digitar ele fica como R$ 109,99 e assim por diante alguem pode me dar uma dica pq isto esta acontendo?
desde já muito obrigado.
desculpem a mensagem anterior é que digitei errado


[b:2109c0dca9]Debug,
Mensagem anterior removida![/b:2109c0dca9]
Sandra/Moderação


Debug

Debug

Responder

Posts

16/06/2004

Bon Jovi

DECIMAL do Interbase equivale ao TFMTBCDField no Delphi com dbExpress, e não TCurrencyField.


Responder

Gostei + 0

18/06/2004

Bon Jovi

Fiquei curioso com esse problema, fiz um teste e isso não aconteceu. Teria q detalhar melhor, ou entao ver o q tem de diferente em relacao a esse exemplo q funciona:

.PAS:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBXpress, DB, SqlExpr, Grids, DBGrids, FMTBcd, Provider,
  DBClient, StdCtrls, ExtCtrls, DBCtrls, Mask;

type
  TForm1 = class(TForm)
    SQLConnection1: TSQLConnection;
    DBGrid1: TDBGrid;
    SQLDataSet1: TSQLDataSet;
    SQLDataSet1ID: TIntegerField;
    SQLDataSet1VALOR: TFMTBCDField;
    DataSource1: TDataSource;
    ClientDataSet1: TClientDataSet;
    DataSetProvider1: TDataSetProvider;
    ClientDataSet1ID: TIntegerField;
    ClientDataSet1VALOR: TFMTBCDField;
    ButtonApplyUpdates: TButton;
    DBNavigator1: TDBNavigator;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    procedure ButtonApplyUpdatesClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ButtonApplyUpdatesClick(Sender: TObject);
begin
  ClientDataSet1.ApplyUpdates(-1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientDataSet1.Open;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ClientDataSet1.Close;
end;

end.



DFM:

object Form1: TForm1
  Left = 192
  Top = 107
  Width = 544
  Height = 375
  Caption = ´Form1´
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = ´MS Sans Serif´
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 4
    Top = 160
    Width = 11
    Height = 13
    Caption = ´ID´
    FocusControl = DBEdit1
  end
  object Label2: TLabel
    Left = 4
    Top = 204
    Width = 42
    Height = 13
    Caption = ´VALOR´
    FocusControl = DBEdit2
  end
  object DBGrid1: TDBGrid
    Left = 4
    Top = 32
    Width = 325
    Height = 120
    DataSource = DataSource1
    TabOrder = 0
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = ´MS Sans Serif´
    TitleFont.Style = []
  end
  object ButtonApplyUpdates: TButton
    Left = 248
    Top = 4
    Width = 80
    Height = 25
    Caption = ´ApplyUpdates´
    TabOrder = 1
    OnClick = ButtonApplyUpdatesClick
  end
  object DBNavigator1: TDBNavigator
    Left = 4
    Top = 4
    Width = 240
    Height = 25
    DataSource = DataSource1
    TabOrder = 2
  end
  object DBEdit1: TDBEdit
    Left = 4
    Top = 176
    Width = 134
    Height = 21
    DataField = ´ID´
    DataSource = DataSource1
    TabOrder = 3
  end
  object DBEdit2: TDBEdit
    Left = 4
    Top = 220
    Width = 212
    Height = 21
    DataField = ´VALOR´
    DataSource = DataSource1
    TabOrder = 4
  end
  object SQLConnection1: TSQLConnection
    ConnectionName = ´IBConnection´
    DriverName = ´Interbase´
    GetDriverFunc = ´getSQLDriverINTERBASE´
    LibraryName = ´dbexpint.dll´
    LoginPrompt = False
    Params.Strings = (
      ´DriverName=Interbase´
      ´Database=c:\teste.gdb´
      ´RoleName=RoleName´
      ´User_Name=sysdba´
      ´Password=masterkey´
      ´ServerCharSet=´
      ´SQLDialect=3´
      ´ErrorResourceFile=´
      ´LocaleCode=0000´
      ´BlobSize=-1´
      ´CommitRetain=False´
      ´WaitOnLocks=True´
      ´Interbase TransIsolation=ReadCommited´
      ´Trim Char=False´)
    VendorLib = ´gds32.dll´
    Left = 4
    Top = 316
  end
  object SQLDataSet1: TSQLDataSet
    CommandText = ´select ID, VALOR from TABELA´
    MaxBlobSize = -1
    Params = <>
    SQLConnection = SQLConnection1
    Left = 36
    Top = 316
    object SQLDataSet1ID: TIntegerField
      FieldName = ´ID´
      ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
      Required = True
    end
    object SQLDataSet1VALOR: TFMTBCDField
      FieldName = ´VALOR´
      ProviderFlags = [pfInUpdate]
      Precision = 15
      Size = 2
    end
  end
  object DataSource1: TDataSource
    DataSet = ClientDataSet1
    Left = 132
    Top = 316
  end
  object ClientDataSet1: TClientDataSet
    Aggregates = <>
    Params = <>
    ProviderName = ´DataSetProvider1´
    Left = 100
    Top = 316
    object ClientDataSet1ID: TIntegerField
      FieldName = ´ID´
      ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
      Required = True
    end
    object ClientDataSet1VALOR: TFMTBCDField
      FieldName = ´VALOR´
      ProviderFlags = [pfInUpdate]
      Precision = 15
      Size = 2
    end
  end
  object DataSetProvider1: TDataSetProvider
    DataSet = SQLDataSet1
    UpdateMode = upWhereKeyOnly
    Left = 68
    Top = 316
  end
end


Delphi7 - dbExpress - Midas


Responder

Gostei + 0

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

Aceitar