Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TSQLQuery mit Floatvariable (https://www.delphipraxis.net/115736-tsqlquery-mit-floatvariable.html)

sunshineh 17. Jun 2008 07:13

Datenbank: Oracle, MSSQL, MySQL • Zugriff über: dbExpress

TSQLQuery mit Floatvariable
 
Hallo,
ich habe in einem Array mehrere Floatvariable abgespeichert. Diese Werte möchte ich nun mit Hilfe einer SQLQuery in eine schon vorhandene Datenbank einfügen.
z.B. so:
INSERT INTO Tabname (Time, S1, S2, S3) VALUES (Timestamp, 1,234, 2,456, 5,322)

Nun bekomme ich immer die Fehlermeldung, dass ich zuviele Werte in die Datenbank eintragen möchte, da Delphi das Komma natürlich als Trennung sieht. Hab auch schon verschiedene Zeichen wie Klammer und Anführungszeichen versucht, aber das Komma wird trotzdem als Trennung gesehen.

Wie gehe ich da nun am Besten vor?!

Gruß und Danke, sunshineh

DeddyH 17. Jun 2008 07:14

Re: TSQLQuery mit Floatvariable
 
Verwende den Punkt als Dezimaltrenner.
SQL-Code:
INSERT INTO Tabname (Time, S1, S2, S3) VALUES (Timestamp, 1.234, 2.456, 5.322)

mkinzler 17. Jun 2008 07:15

Re: TSQLQuery mit Floatvariable
 
Er kann natürlich die Kommas der Feldtrennung nicht von deinen Dezimaltrennern unterscheiden. Je nach DBMS/Einstellung '1,0' oder 1.0 verwenden

hoika 17. Jun 2008 07:29

Re: TSQLQuery mit Floatvariable
 
Hallo,

oder gleich Parameter

INSERT INTO Tabname (Time, S1, S2, S3) VALUES (Timestamp, :S1, :S2, :S3)

ParamByName('S1').AsFloat:= 1.234; usw.



Heiko

RavenIV 17. Jun 2008 07:52

Re: TSQLQuery mit Floatvariable
 
Die Version mit Parametern ist eh der bessere / schönere / effektivere Weg.
Dann bist Du flexibler.

hoika 17. Jun 2008 08:34

Re: TSQLQuery mit Floatvariable
 
Hallo,

unter unter Oracle u.U. auch schneller,
falls die Query mehrfach verwendet wird (Query-Cache).


Heiko

Bernhard Geyer 17. Jun 2008 09:17

Re: TSQLQuery mit Floatvariable
 
Und du gehst dem SQL-Injection Sicherheitsproblem aus dem weg ...


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