realbasic-nug.de
[Top] [All Lists]

Re: Double in rbdatabase schreiben

To: "REALbasic NUG German" <realbasic-nug dot de at lists dot realsoftware dot com>
Subject: Re: Double in rbdatabase schreiben
From: Tobias Bußmann <e dot t dot bussmann at ing dot twinwave dot net>
Date: Sat, 14 Jan 2006 16:22:44 +0100
Delivered-to: realbasic-nug dot de at lists dot realsoftware dot com
References: <36cd21735d810a97d57fd6a68d9d67c0 at t-online dot de><96b19dc90d6bcaaa093540f67973e1d2 at t-online dot de><8c3921d9328aebc3dd32172a2622ada0 at t-online dot de><27601ffdd8c56d21f90bedd95aafb782 at t-online dot de><ed2f17a3ce47fdc4bdfd57d08bfa3950 at t-online dot de><d6af9878154ad4bab4945fa4ae518b3a at t-online dot de> <a06ece51e16f4842499ca7a9e177ebfb at t-online dot de>
Hi Enno,
also es kann ja sein, dass ich das wirkliche Problem noch nicht erkannt
habe, auch von der Real-DB hab ich keine spezifische Ahnung, aber rein
SQL-technisch würd ich jetzt mal sagen, dass strings (z.B. VARCHARs) mit '
gequoted werden wogegen Zahlenwerte üblicherweise ungequotet übergeben
werden. In der db.sqlexecute Zeile erzeugst du ja ein SQL Kommando als
String. mit einer Angabe wie ... VALUES ('"+editfield1.text+"') ... sieht
der erzeugte String also wie folgt aus: ... VALUES ('Mein Text aus dem
Editfield') ...  was du hier brauchst wäre eine Zahl, also ohne Quotes: ...
VALUES ("+val(editfield1.text)+") ... das würde dann zu dem String ...VALUES
(123,456) ...  führen. Da es sich um einen Floatingpoint Wert handelt musst
du diesen ggf noch über Format() o.Ä. mit Punkt als Dezimaltrenner
schreiben. Das hängt jedoch vom verwendeten DBMS ab und davon was dieses
(ggf. unter einbeziehung der jeweiligen locale Einstellung) als
Eingabesyntax für Fließkommazahlen akzeptiert.
Ein Tipp noch am Rande: versuche dir doch das zusammengestellte SQL-Kommando
als MsgBox auszugeben, dann siehst du was genau an das DB-Backend gesendet
wird. Und noch ein Tipp: wenn du Benutzereingaben direkt in einen SQL-String
einbettest, solltest du dir Gedanken über richtiges escapen von
Sonderzeichen machen, sonst bist du sehr anfällig für SQL injection Attaken.

hth
Tobias

Enno Bussmann <enbus at t-online dot de> wrote:
> Nein, eben leider nicht, da das programm den double-wert erst über
> val() errechnet und ich nicht sagen kann .... values (6.5)
>
>
> Am 14.01.2006 um 13:45 schrieb Rudi Maier:
>
>> db.sqlexecute "insert into tabelle (doublefeld) values ( Ergebnis )"
>>
>> ich habe die RB-Datenbank noch nie benutzt, aber in Ergebnis steht
>> doch der Wert als double.
>>
>> Rudi
> enno



<Prev in Thread] Current Thread [Next in Thread>