AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StrToFloat bei Datenexport

Ein Thema von OsCor · begonnen am 23. Jan 2022 · letzter Beitrag vom 25. Jan 2022
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#11

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 00:00
Na das ist ja mal zu praktisch.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
674 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 08:17
Ich denke du solltest erstmal nachdenken was du überhaupt speichern willst. Für Geldbeträge gibt es andere Datentypen die das Gleitkomma Problem nicht haben.
BCD / Numeric oder in modernen Datenbanken Currency.
Da fällt das ganze gezerre über mysteriös auftauchenden winzigen Beträgen weg.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 09:43
Sobald man auch nur ein Field vorm Open selbst erstellt, dann muß man alle Fields selbst erstellen/erstellen lassen.
Das ist aber schon etwas veraltet.

Mit FieldOptions.AutoCreateMode := acCombineAlways werden alle Felder angelegt, die nicht statisch sind. FieldOptions.PositionMode steuert, wo die automatisch erzeugten platziert werden, und mit FieldOptions.UpdatePersistent kann man die statischen Felder auch noch an die tatsächliche Datenfeldgröße (z.B. bei Stringfeldern) anpassen.
Gut zu wissen. Danke Uwe
Peter
  Mit Zitat antworten Zitat
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 09:49
Ich denke du solltest erstmal nachdenken was du überhaupt speichern willst. Für Geldbeträge gibt es andere Datentypen die das Gleitkomma Problem nicht haben.
BCD / Numeric oder in modernen Datenbanken Currency.
Da fällt das ganze gezerre über mysteriös auftauchenden winzigen Beträgen weg.
Wer redet denn von Geldbeträgen? Die habe ich mit AsCurrency gespeichert. Oder meinst du, ich soll die Gleitkommawerte als Währung speichern? Das wäre natürlich eine interessante Alternative

@all Ich merke, dass 10 Jahre ohne regelmäßige Nutzung von Delphi bei mir massive Lücken gerissen haben und ich schwer Mühe habe, euch zu folgen: Alles schon mal gehört oder sogar verwendet - irgendwann in grauer Vorzeit. Aber ich hänge mich rein; es wird nur ein paar Tage brauchen.

Gruß
Oswald

Geändert von OsCor (24. Jan 2022 um 09:51 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
589 Beiträge
 
Delphi XE6 Enterprise
 
#15

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 12:27
dazu muß man die entsprechenden Felder hinzufügen.
Ist doch gar nicht nötig. Nach dem Öffnen der Datenmenge:

TFloatField(ds.FieldByName('feldname')).DisplayFormat := '0.00';
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
674 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 12:37
Wer redet denn von Geldbeträgen?
Sorry, ich habe dich verwechselt

Trotzdem würde ich eher mit einem Numeric arbeiten als einer Gleitkommazahl. Hängt natürlich von der Anwendung ab, aber selbst wenn man extrem kleine Zahlen hat, die man exakt speichern muss, ist Numeric das besser.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 13:11
Schreib die von Frickler erwähnte Zeile im OnAfterOpen Event des Datasets und alles funktioniert so wie du willst.
  Mit Zitat antworten Zitat
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 13:39
Das habe ich nun wirklich nicht zu hoffen gewagt! Die Zeile von Frickler im ADOTable1AfterOpen-Ereignis (nicht OnAfterOpen), wie von Rolf Frei vorgeschlagen, und das funktioniert.
Von alleine kommt man da ja nie drauf…

Auch, wenn sich dieses eine Teilproblem auf relativ simple Weise hat lösen lassen, war schon bei den Posts vorher das eine oder andere Aha-Erlebnis (nach dem Motto: Bist du nicht der…, wir haben uns ja ewig nicht gesehen ) dabei.

Danke!
Oswald
  Mit Zitat antworten Zitat
OsCor

Registriert seit: 1. Jan 2009
Ort: Kenzingen, Südbaden
99 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 14:03
Nachsatz:
Gerade erst gemerkt: DisplayFormat steuert lediglich die Darstellung der Zahlen beim DBGrid (also vermutlich bei datensensitiven Controls). Nicht sensitive Editfelder, die man füllt, muss man selber formatieren.

Gruß
Oswald
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#20

AW: StrToFloat bei Datenexport

  Alt 24. Jan 2022, 14:53
DisplayFormat ist für die Anzeige in den datensensitiven Elementen. TEdit gehört nicht dazu.

Es gibt aber auch noch TMaskEdit. Da kann man eine Anzeigemaske für die Darstellung im Edit angeben. Wäre das 'ne Alternative?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 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