Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi '' ist kein gültiger Gleitkommawert (https://www.delphipraxis.net/97592-ist-kein-gueltiger-gleitkommawert.html)

LOMBI 13. Aug 2007 10:27

Datenbank: ABS-DB • Version: 5.12 • Zugriff über: ABSQuery, DataSource

'' ist kein gültiger Gleitkommawert
 
Wie bitte reagiere ich auf die Fehlermeldung:
'' ist kein gültiger Gleitkommawert
wenn ggf. Felder vom Typ Currency leer gespeichert werden?
Der Code führte leider nicht zu dem gewünschten Ergebnis!

Delphi-Quellcode:

procedure TDatMod.ABSQueryBeforePost(DataSet: TDataSet);
begin
  with FmItemDlg do
  begin
    ...
    if AuftragDatModul.ABSQueryArtikel.FieldByName('VKNetto').IsNull then
      EdVKnet.Text := '0,0000';
    if AuftragDatModul.ABSQueryArtikel.FieldByName('VKBrutto').isNull then
      EdVKbrut.Text := '0,0000';
   ...
Vielen Dank für Hilfe!

Gruß
Lombi

Luckie 13. Aug 2007 10:29

Re: '' ist kein gültiger Gleitkommawert
 
Dann muss der Fehler an anderer Stelle liegen. Geh den Codeteil doch einfach mal schrittweise durch.

mkinzler 13. Aug 2007 10:30

Re: '' ist kein gültiger Gleitkommawert
 
Wo kommt den der Fehler?

LOMBI 13. Aug 2007 11:16

Re: '' ist kein gültiger Gleitkommawert
 
Könnte ich alternativ die Werte '0,0000' bei Aufruf Insert vorgeben?

Angel4585 13. Aug 2007 11:27

Re: '' ist kein gültiger Gleitkommawert
 
Bei einer SQL-Datenbank kannst du Default-Werte angeben, da kannst du dann 0,00 oder 0.00 reinschreiben, je nachdem was die DB verlangt.

marabu 13. Aug 2007 11:27

Re: '' ist kein gültiger Gleitkommawert
 
Hallo Lombi,

natürlich kannst du Feldwerte über das Ereignis OnNewRecord() initialisieren. Das verhindert aber nicht, dass beim Bearbeiten des Feldwertes dieser ganz gelöscht wird. Wie du bei nicht datensensitiven Edit-Feldern mit einer Leereingabe umgehen musst kannst du in deiner ABS-Demo sehen:

Delphi-Quellcode:
procedure TDatMod.ABSQueryBeforePost(DataSet: TDataSet);
begin
  with FmItemDlg do
  begin
    ...
    AuftragDatModul.ABSQueryArtikel.FieldByName('VKNetto').AsString := EdVKnet.Text;
   ...
Freundliche Grüße

shmia 13. Aug 2007 12:37

Re: '' ist kein gültiger Gleitkommawert
 
Man sollte keinesfalls über die globale Instanzvariable "AuftragDatModul"
auf die Query zugreifen, sondern über den Parameter Dataset
Delphi-Quellcode:
  // Falsch
  if AuftragDatModul.ABSQueryArtikel.FieldByName('VKNetto').IsNull then
 
  // Richtig
  if Dataset.FieldByName('VKNetto').IsNull then

LOMBI 13. Aug 2007 20:15

Re: '' ist kein gültiger Gleitkommawert
 
@ Luckie
Zitat:

Dann muss der Fehler an anderer Stelle liegen.
Fehler korrigiert!

@Shmia
Zitat:

// Richtig
if Dataset.FieldByName('VKNetto').IsNull then ...
Habe die Zuweisung in DataSet geändert!


Problem gelöst. Vielen Dank euch allen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 Uhr.

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