Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [erledigt] SQLite und Realtyp (https://www.delphipraxis.net/153056-%5Berledigt%5D-sqlite-und-realtyp.html)

matashen 19. Jul 2010 12:03

Datenbank: sqlite • Version: 3 • Zugriff über: dll

[erledigt] SQLite und Realtyp
 
Hallo,

arbeite mich gerade in Datenbank ein,

jetzt hab ich aber das problem.

Wie kann ich eine Gleitkommazahl in die Datenbank schreiben.

ich habs jetzt mal so versucht einen Eintrag auf einen Rutsch zu schreiben
Code:
        sldb.BeginTransaction;
        sSQL := 'INSERT INTO tape(sap,firstID,alternateID1,alternateID2,LOrt,a0,b0,k0,pitch,width,manufacter1,manufacter2,manufacter3,length,notes) ';
        sSQL :=sSQL+'VALUES ("'+artikelnummer.text+'","'+
        bezeichnung1.Text+'","'+bezeichnung2.text+'","'+
        bezeichnung3.text+'","'+
        lagerort.text+'",'+a0.Text+','+b0.Text+','+k0.text+
        ','+pitch.Text+','+width.text+',"'+lieferant1.Text+
        '","'+lieferant2.Text+'","'+lieferant3.Text+'",'+meters.Text+',"'+infofeld.Text+
        '");';
        //do the insert
        sldb.ExecSQL(sSQL);
Es funktioniert auch solange ich ganzzahlen verwende, aber wennich z.B. in das Feld a0.text 10,9 rein schreibe dann bekomm ich (was auch logisch ist) den Fehler mehr Daten als Spalten.

Wie muss ich das parametrieren oder eintragen, damit der Float in der Datenbank ankommt.


Gruß Matthias

PS: Ich bin in der Suche schon seit ner Stunde aktiv und find nix...

DeddyH 19. Jul 2010 12:10

AW: SQLite und Realtyp
 
Welchen Typ haben denn die Spalten in der DB? Und hast Du es einmal mit dem Punkt statt dem Komma als Dezimalseparator versucht? Übrigens wäre ein parametrisiertes Statement um Längen besser, aber ich weiß nicht, ob die verwendeten Komponenten das unterstützen.

matashen 19. Jul 2010 12:17

AW: SQLite und Realtyp
 
Die Tabelle müsste korrekt sein.

Ich hab jetzt die variable
decimalseparator:='.';
gesetzt und schon klappts.

Wie kompliziert das man manchmal denken kann un dso einfach ists :-D

Dankeschön!


OT:
Was liegt am Strand und spricht undeutlich
---na eine "Nuschel"

Bernhard Geyer 19. Jul 2010 12:55

AW: SQLite und Realtyp
 
Zitat:

Zitat von matashen (Beitrag 1036162)
Ich hab jetzt die variable
decimalseparator:='.';
gesetzt und schon klappts.

Wie kompliziert das man manchmal denken kann un dso einfach ists :-D

Wie sagt man so schön: Bei Verwendung von parametrisierten Abfragen wäre das nicht passiert.

Ich hoffe für dich das auch keiner deiner Lieferanten aus dem französischen Raum kommt. Diese haben des öfteren mal Hochkommas im Namen. Und du kannst dir jetzt mal überlegen was dann mit deiner Query passiert ...

DeddyH 19. Jul 2010 13:00

AW: [erledigt] SQLite und Realtyp
 
Meine Rede. Sollte(n) die verwendete(n) Komponenten/Library Parameter unterstützen, sollte man diese auf jeden Fall nutzen, allein schon deshalb, um SQL-Injection einen Riegel vorzuschieben.

matashen 19. Jul 2010 14:43

AW: [erledigt] SQLite und Realtyp
 
Das Programm nutz nur ich und mein Kollege,

und da ich noch nie was mit Datenbanken gemacht hatte, aber mich schon lang mal dran versuchen wollte. Hab ich da ganz Lite angefangen. Um überhaupt zu checken wie eine SQl Abfrage funktioniert und das ganze aufgebaut ist reicht das denke ich auch.

Zitat:

Sollte(n) die verwendete(n) Komponenten/Library Parameter unterstützen, sollte man diese auf jeden Fall nutzen, allein schon deshalb, um SQL-Injection einen Riegel vorzuschieben.
keinen Peil von was du da redest, aber ich wette du hast recht :-D

Komponenten hab ich jetzt nicht verwendet und das ganze läuft auch lokal...

nu bastel ich weiter :)


Gruß Matthias

mkinzler 19. Jul 2010 14:56

AW: [erledigt] SQLite und Realtyp
 
Zitat:

keinen Peil von was du da redest, aber ich wette du hast recht
SQL-Code:
INSERT INTO tape(sap,firstID,alternateID1,alternateID2,LOrt,a0,b0,k0,pitch,width,manufacter1,manufacter2,manufacter3,length,notes)
          values( :sap,:firstID,:alternateID1,:alternateID2,:LOrt,:a0,:b0,:k0,:pitch,:width,:manufacter1,:manufacter2,:manufacter3,:length,:notes);
Delphi-Quellcode:
sqldb.ParamByName('sap).Value := artikelnummer.text;
...
Zitat:

Komponenten hab ich jetzt nicht verwendet und das ganze läuft auch lokal...
sldb könnte eine sein.


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