Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mein Programm schreibt keine Floats in eine *.accdb (https://www.delphipraxis.net/157583-mein-programm-schreibt-keine-floats-eine-%2A-accdb.html)

daredd 17. Jan 2011 12:54

Datenbank: Access • Version: 2007 • Zugriff über: ADO

Mein Programm schreibt keine Floats in eine *.accdb
 
Hallo Freunde,

ich habe eine Access 2007 Datenbank erstellt (*.accdb). Dort ist auch eine Tabelle mit Währungen (Kommazahlen enthalten). Nun möchte ich via ADO auf die Datenbank zugereifen und Enträge hinzufügen/ändern.
Als Provider benutze ich "Microsoft Office 12.0 Access Database Engine OLE DB Provider".
Die Connection steht, DBGrid zeigt auch alles an. Nun tippe ich in einigen DBEdits neue Werte ein, die ich dann durch das betätigen eines Buttons in die Tabelle posten möchte hier der Button-Code:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  myFormatSettings : TFormatSettings;
begin
GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,myFormatSettings);
  myFormatSettings.DecimalSeparator := ','; // <- oder ','?
ADOTable1.Edit;
ADOTable1.FieldByName('Artikelnummer').AsString := 'KM-'+DBEdit1.Field.AsString;
ADOTable1.FieldByName('EPreis_Brutto_V').AsFloat := (DBEdit4.Field.AsFloat*1.19)+0.75;
ADOTable1.FieldByName('VPreis_Brutto').AsFloat := DBEdit5.Field.AsFloat-((DBEdit5.Field.AsFloat/100)*8);
ADOTable1.FieldByName('Marge').AsFloat := ADOTable1.FieldByName('VPreis_Brutto').AsFloat-ADOTable1.FieldByName('EPreis_Brutto_V').AsFloat;
ADOTable1.FieldByName('Marge_Prozent').AsFloat := ((ADOTable1.FieldByName('VPreis_Brutto').AsFloat-ADOTable1.FieldByName('EPreis_Brutto_V').AsFloat)/ADOTable1.FieldByName('VPreis_Brutto').AsFloat)*100;
ADOTable1.Post;
end;
Nach dem Button1Click, stehen keine float-werte in der Tabelle. Die Kommata werden einfach gelöscht!
Ich habe im Internet schon einiges dazu gefunden, aber nichts sinnvolles gefunden. Hat jemand eine Ahnung?

mkinzler 17. Jan 2011 20:27

AW: Mein Programm schreibt keine Floats in eine *.accdb
 
Versuch mal
Delphi-Quellcode:
ADOTable1.FieldByName('EPreis_Brutto_V').Value := DBEdit4.Field.Value*1.19 +0.75;

Bummi 17. Jan 2011 22:41

AW: Mein Programm schreibt keine Floats in eine *.accdb
 
wahrscheinlich völlig daneben, aber rein zur Sicherheit...
die Felder sind in der DB als Floats angelegt?
kein fehlerhaftes Format auf der Oberfläche?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz