Entwickler-Ecke

Datenbanken - Double Wert in DB eintragen! Wie?


doc_haemmer - Sa 05.10.02 14:45
Titel: Double Wert in DB eintragen! Wie?
Hallo

ich bin noch neu hier und weiss deshalb nicht, ob ich jetzt richtig poste wenn ich das unter Datenbanken stelle, hoffe aber schon. :roll:

Ich hab bis jetzt auch ziemlich viel hier gelesen und eigentlich alle Probleme mit den Hilfen hier lösen können.

Nun hab ich aber ein Problem das wahrscheinlich wirklich sehr einfach ist, das mich aber bald zum verzweifeln bringt.

Ganz vereinfacht möchte ich einen Wert aus einem Feld (sagen wir ein Edit Feld) in meine DB übernehmen. So weit so gut, nur ist es so das ich in der DB ein Double Feld 10,2 habe und jetzt den Wert über einen Knopf übernehmen möchte. Steht aber in dem Edit Feld z.B 12,22 so übernimmt er mir nur die 12 und schneidet mir immer das Komma und die Werte danach ab.

Hier mal der Code wie ich es probiere,


Quelltext
1:
2:
3:
4:
    QZahl.Close;
    QZahl.Sql.Clear;
    QZahl.Sql.Add('Insert into Test values("'+Edit1.Text+'")');
    QZahl.ExecSql;


Probiert es bitte mal aus und sagt mir was ich falsch mache. :cry:

Ich komm einfach nicht drauf, wahrscheinlich ein Anfängerproblem aber trotzdem ärgerlich.

Ach ja, ich arbeite mit einer mysql Datenbank, aber das ist ja schätz ich mal das gleiche wie eine normale SQL DB oder?

Danke für Eure Hilfe

doc_haemmer


MrSpock - Sa 05.10.02 19:07

Hallo doc_haemmer,

versuchs mal mit:


Quelltext
1:
2:
3:
4:
    QZahl.Close;
    QZahl.Sql.Clear;
    QZahl.Sql.Add('Insert into Test values('+Edit1.Text+')');
    QZahl.ExecSql;


Durch die doppelten Anführungsstriche erzeugst du einen String.


doc_haemmer - So 06.10.02 08:00

Hallo Mr. Spock,

Sorry das habe ich vergessen zu schreiben, das ich das auch schon probiert hatte. Wenn ich es so mache, bekomme ich einen Fehler mit der Nachricht.


Quelltext
1:
Im Projekt ist eine Exception der Klasse EDatabaseError aufgetreten. Meldung ' olumn count doesn't match value count at row 1'. ...                    


also so geht es glaube ich nicht, hast Du oder wer anders vielleicht eine andere Idee wie es gehen könnte? :(


bis11 - So 06.10.02 08:55

Hi,

Probiere es mal so :


Quelltext
1:
2:
3:
4:
    QZahl.Close; 
    QZahl.Sql.Clear; 
    QZahl.Sql.Add('Insert into Test values Feldname='+edit1.text);
    QZahl.ExecSql;


doc_haemmer - So 06.10.02 10:16

Hi bis11,

so geht es glaube ich nicht, hab es gerade probiert und bekomm dann einen Fehler das ich einen Fehler in meiner SQL Syntax habe.

Ich glaub auch das meine Syntax die ganz oben steht stimmt, den bei Strings und Integer Werten hab ich ja keine Probleme. die Probleme bekomme ich ja nur, wenn ich einen Wert in ein Double Feld übergeben will, weil er mir das Komma und den Rest danach abschneidet.

Hat sonst noch wer eine Idee? :oops:

Ach ja Danke erstmal für Eure Hilfen, auch wenn es noch nicht die Lösung ist. :wink:


Snoop007 - So 06.10.02 10:26

SQL - Anweisung

Quelltext
1:
2:
INSERT INTO <tabellenname> 
(<spaltenname>) VALUES (<zahlenwert>)

oder

Quelltext
1:
2:
INSERT INTO <tabellenname> 
(<spaltenname>) VALUES ('<stringwert>')


ich glaube bei dir liegt das problem am komma, tausche es mal gegen einen punkt aus

wenn das nicht hilft schreib mal, von was für einem typ das feld ist, indas der wert aus edit1 rein soll

ich habe was vergessen zu erwähnen, übergibst du einen stringwert in eine sql-anweisung und ist dieser ein string wert, muss eine sql-anweisung wie folgt lauten


Quelltext
1:
'INSERT INTO <tabellenname> (<spaltenname>) VALUES ('''+<variable>+''')'                    


doc_haemmer - Di 08.10.02 10:33

Hi Snoop007,

Danke für Deine Hilfe, jetzt funzt es. Es war 1. Das Komma, das ich als Punkt haben muss und dann die 2.te Sache die Du geschrieben hast mit den 3'. :lol: :D :lol:

Auf die Sache mit dem Punkt wäre ich nie gekommen. Ic hab das mysqlFront zu Hause mit dem man schön Sachen in die DB eintragen kann und wenn man da einen Punkt eingibt bei den Werten, wandelt er es automatisch in ein Komma um. Deshalb hab ich gedacht das es nur mit Komma geht. :oops:

Mach ich es aber über mein Delphi Programm mit der Insert Anweisung, kann ich auch einen Punkt eingeben. Ach ja das Feld war ein Double(10,2) aber das hat sich ja jetzt erledigt. :wink:

Vielen Dank nochmal für Eure Hilfe :lol:

Schöne Grüße doc_haemmer