Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Ungültige Gleitkommaoperation nur bei bestimmten PC's (https://www.delphipraxis.net/214290-ungueltige-gleitkommaoperation-nur-bei-bestimmten-pcs.html)

HCB 19. Dez 2023 16:07

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Hier der Code-Ausschnitt:
Delphi-Quellcode:
           try
            dummy:=StrToInt(edt_SearchEdit.Text); //prüfen ob artikelnummer eingegeben wurde, sonst except ausführen
            Q_sArtikel.close;
            Q_sArtikel.SQL.Text:='select * from Artikel where ArtNr like '+ QuotedStr(edt_SearchEdit.Text+'%')                  
            Q_sArtikel.open;              
           except on E: EConvertError do  ShowMessage('Keine gültige Artikelnummer';
           end;
LG Harry

Bernhard Geyer 19. Dez 2023 16:10

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
HP Treiber installiert?
(gab es jedenfalls mal vor Jahren, das diese "ein paar Einstellungen" für alle Programme beeinflusst haben.

himitsu 19. Dez 2023 16:28

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1530976)
StrToInt(eingabetext) suggeriert zwar, dass hier die Eingabe zu 'nem Integer werden soll, aber ob die Eingabe ein Integer ist, wissen wir nicht.

Es ist egal, was übergeben wird, es kann auch garnichts, oder der Name "Hans Peter" sein.
Es wird als Ganzzahl interpreziert und demnach auch so behantelt.
Sollte es nicht passen, dann kommt ein anderer Fehler, aber eben nichts bezüglicgh Fließkomma.

Und ja, natürlich kann (oder wird vermutlich auch) der Fehler von wo Anders her kommen.

Klaus01 19. Dez 2023 16:46

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
.. du kannst Dein Edit auch so einstellen, dass es nur Zahlen/Ziffern akzeptiert.

Grüße
Klaus

HCB 19. Dez 2023 17:08

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Im Suchfeld sollen Artikelnummern und Produktbezeichnungen eingegeben werden können, wobei wenn Artikelnummern eingegeben werden eine andere SQL abfrage gestartet wird.
Ich habe das ganze jetzt mal auf "tryStrToInt" umgestellt und statt der var cardinal Integer zugewiesen. Mal sehen obs dann richtig läuft.
Gebe auf jedenfall morgen bescheid. Drückt mir die Daumen.

LG Harry

himitsu 19. Dez 2023 19:27

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
bis 9 bzw. 10 Dezimalstellen
TryStrToInt
Delphi-Referenz durchsuchenTryStrToUInt

bis 19 bzw. 20 Dezimalstellen
Delphi-Referenz durchsuchenTryStrToInt64
TryStrToUInt64

Benmik 19. Dez 2023 20:47

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Ich würde auch nochmal den Hinweis von LoZe abprüfen. Und zwar habe ich auf einem Rechner ein chinesisches Programm, das ein Gerät ausliest, das nur dann korrekte Zahlen liefert, wenn man das Zeichen für den Dezimaltrennpunkt auf Komma umstellt. Hat was mit einer Fotovoltaikanlage zu tun. Hab ich gemacht, natürlich vergessen zurückzustellen und ein paar Tage später beinahe 120.000 € überwiesen. Die Ländereinstellung ist weiterhin auf "Deutschland" und es ist nichts verändert, außer dem Dezimalzeichen. Den Betrag hatte ich kopiert und eingefügt, so kann zwanglos eine Gleitkommazahl in eine Textbox kommen.

jaenicke 19. Dez 2023 21:55

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Bist du sicher, dass die Exception an der Stelle auftritt? Wie lautet diese ganz genau?

Dass diese dort nicht abgefangen wird, liegt daran, dass du nur EConvertError abfängst, alle anderen Exceptions aber nicht. Du solltest besser TryStrToInt verwenden und nur Exceptions in den Zeilen mit der SQL-Abfrage behandeln, dort dann aber alle.

haentschman 20. Dez 2023 05:50

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Hallöle...8-)
[OT]
Delphi-Quellcode:
try
  dummy := StrToInt(edt_SearchEdit.Text); //prüfen ob artikelnummer eingegeben wurde, sonst except ausführen
  Q_sArtikel.Close;
  Q_sArtikel.SQL.Text := 'select * from Artikel where ArtNr like '+ QuotedStr(edt_SearchEdit.Text+'%')
  Q_sArtikel.Open;
except
  on E: EConvertError do ShowMessage('Keine gültige Artikelnummer';
end;
Delphi-Quellcode:
'select * from Artikel where ArtNr like '+ QuotedStr(edt_SearchEdit.Text+'%')
bietet SQL Injection einen perfekten Spielplatz. :kotz: https://de.wikipedia.org/wiki/SQL-Injection
Immer mit Parametern arbeiten. :warn:
Delphi-Quellcode:
try
  dummy := StrToInt(edt_SearchEdit.Text); //prüfen ob artikelnummer eingegeben wurde, sonst except ausführen
  Q_sArtikel.Close;
  Q_sArtikel.SQL.Text := 'select * from Artikel where ArtNr like :ANN';
  Q_sArtikel.ParamByName('ANN').AsString := QuotedStr(edt_SearchEdit.Text+'%');
  Q_sArtikel.Open;
except
  on E: EConvertError do ShowMessage('Keine gültige Artikelnummer';
end;
[/OT]

:wink:

DeddyH 20. Dez 2023 06:16

AW: Ungültige Gleitkommaoperation nur bei bestimmten PC's
 
Entweder SQL-Parameter(dringend empfohlen) oder QuotedStr, beides zusammen ist doppelt gemoppelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:57 Uhr.
Seite 2 von 6     12 34     Letzte »    

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