wie kann ich ein Komma zahlen wert mit Insert into in eine Datenbank schreiben?
Code: Alles auswählen
cSQL := 'Insert Into Preis (STD_Preis) Values ("'+edit1.text+'")';
hat jemand eine Idee?
ich würde ungerne ein DBEdit nehmen
VG
Code: Alles auswählen
cSQL := 'Insert Into Preis (STD_Preis) Values ("'+edit1.text+'")';
Code: Alles auswählen
SQLQuery1.SQL.Text := 'Insert Into Preis (STD_Preis) Values (:PREIS)';
SQLQuery1.Params.ParamByName('PREIS').AsFloat := StrToFloat(edit1.text);
af0815 hat geschrieben:Parameter benutzen wie hier zum Beispiel
Code: Alles auswählen
SQLQuery1.SQL.Text := 'Insert Into Preis (STD_Preis) Values (:PREIS)';
SQLQuery1.Params.ParamByName('PREIS').AsFloat := StrToFloat(edit1.text);
Code: Alles auswählen
zArtikelInsert.SQL.Text := 'insert into dbArtikel ("Artikelname", "FK_ArtikelTyp", "Beschreibung", "STD_PREIS") Values ("'+edArtikelname.text+'","'+cArtikelTypID+'","'+mBeschreibung.text+'",:PREIS)';
zArtikelInsert.ParamByName('PREIS').AsFloat := StrToFloat(DBEd_STD_PREIS.Text);
zArtikelInsert.Active := True;
TT73GP7 hat geschrieben:wodran kann sowas liegen?
und wie geht man an besten an solche fehler dran?
Code: Alles auswählen
Active, Open oder ExecSQL
... das ist hier die Frage ? Um diese Frage zu beantworten, muß man sich vor Augen halten, was man von der Komponente will. Mittels dem Befehl Open bzw. Active fordert man eine Datenmenge an. Mit ExecSQL wird nur eine Aktion angefordert ohne das eine Datenmenge zurück erwartet wird.
......
Zusammenfassung:
• Open, Active: Bei der Verwendung von ’SELECT’
• ExecSQL: Für alle anderen Statements 'INSERT', 'UPDATE', 'DELETE'
TT73GP7 hat geschrieben:ich brauche dringend einen neuen und ich kann mich noch nicht so festlegen
TT73GP7 hat geschrieben:Hallo Zusammen,
wie kann ich ein Komma zahlen wert mit Insert into in eine Datenbank schreiben?Code: Alles auswählen
cSQL := 'Insert Into Preis (STD_Preis) Values ("'+edit1.text+'")';
hat jemand eine Idee?
ich würde ungerne ein DBEdit nehmen
VG
Code: Alles auswählen
cSQL := 'Insert Into Preis (STD_Preis) Values ("'+StringReplace(edit1.text,',','.',[rfIgnoreCase])+'")';
hubblec4 hat geschrieben:Ich habe das bisher immer so gelöst:
In der SQL DB ist deine spalte als type auf float eingestellt ist, daher wird im SQL-Text ein String benötigt der als Dezimaltrenner einen Punkt(.) hat.
Da aus Lazarus oft Floatwerte mit einem Komma(,) als Dezimaltrenner kommen, ersetze ich den einfach mit StringReplace