Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TEdit -> Kommazahl -> SQL (https://www.delphipraxis.net/97685-tedit-kommazahl-sql.html)

HolgerCW 14. Aug 2007 14:18


TEdit -> Kommazahl -> SQL
 
Hallo zusammen,

wie behandele ich am besten Kommazahlen in SQL ?

In einem TEdit - Feld können Zahlen eingegeben werden. Und die meisten User geben ja sowas wie z.B. 12,3 ein. Wie verarbeite ich das am besten nun in einer SQL - Abfrage, das ich normale, wie auch Kommazahlen auf grösser gleich abfragen kann ?

Gruss

Holger

peter12 14. Aug 2007 14:26

Re: TEdit -> Kommazahl -> SQL
 
In einer SQL Abfrage muß das Komma durch einen Punkt ersetzt werden.
Ich mach das mit einer Function wo der Komma durch einen Punkt ersezt wird.

Peter

mkinzler 14. Aug 2007 14:27

Re: TEdit -> Kommazahl -> SQL
 
Was für einen Typ hat das Feld in der DB?

HolgerCW 14. Aug 2007 14:29

Re: TEdit -> Kommazahl -> SQL
 
Alles klar, dann baue ich mir wohl eine Function. Vielleicht kannst Du die ja hier mal posten ?

Das Feld in der DB ist number(11,3)

Vielleicht noch jemand eine andere Idee ?

Gruss

Holger

mkinzler 14. Aug 2007 14:35

Re: TEdit -> Kommazahl -> SQL
 
man könnte auch (SQL-)Parameter verwenden, dann ist die manuelle Wandlung überflüssig.

marabu 14. Aug 2007 14:36

Re: TEdit -> Kommazahl -> SQL
 
Hallo Holger,

ein Problem hast du nur, wenn der bei der Eingabe verwendete DecimalSeparator nicht dem Locale-Default entspricht. Ansonsten kannst du den Wert einfach mit StrToFloat() in sein internes Format umwandeln. Wenn du dann im SQL-Statement mit Parametern arbeitest, dann kannst du den Float-Wert über ParamByName('param1').AsFloat direkt zuweisen.

Grüße vom marabu

HolgerCW 14. Aug 2007 14:43

Re: TEdit -> Kommazahl -> SQL
 
Ich muss doch den Wert aus dem TEdit - Feld als String - Wert an den SQL - String übergeben. Baue mir nämlich einen SQL - String zusammen.

Zur Zeit sieht das so aus:

Delphi-Quellcode:

Query.SQL[1] := 'WHERE LEISTUNG > ''' + TEdit1.Text + '''';
Wo kommen da die Parameter rein ?

Gruss

Holger

marabu 14. Aug 2007 14:54

Re: TEdit -> Kommazahl -> SQL
 
Delphi-Quellcode:
Query.SQL[1] := ' WHERE LEISTUNG > :PMIN ';


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:14 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