SQLite und UPDATE
-
- Beiträge: 7
- Registriert: Fr 21. Mär 2014, 10:23
- OS, Lazarus, FPC: Windows Vista, Lazarus 1.2.0
- Wohnort: Kerpen
SQLite und UPDATE
Ich habe eine kleine Adressverwaltung mit SQLite geschrieben. Bis auf das Ändern funktioniert es gut. Nur beim
UPDATE gibt es Probleme, es gibt keine Fehlermeldung, aber es erfolgt auch keine Änderung im Record.
Auch mit Navigator und Datasource habe ich keine Wirkung von UPDATE.
Wer kann mir helfen.
Meine UPDATE-Zeile:
SQLQuery1.SQL.text:='UPDATE tblMitglied SET SQLQuery1.Fields[3]=(:weg) WHERE SQLQuery1.Fields[1]=(:nme)';
UPDATE gibt es Probleme, es gibt keine Fehlermeldung, aber es erfolgt auch keine Änderung im Record.
Auch mit Navigator und Datasource habe ich keine Wirkung von UPDATE.
Wer kann mir helfen.
Meine UPDATE-Zeile:
SQLQuery1.SQL.text:='UPDATE tblMitglied SET SQLQuery1.Fields[3]=(:weg) WHERE SQLQuery1.Fields[1]=(:nme)';
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: SQLite und UPDATE
Was meinst du mit "keine Änderung in Record"? Die Änderung wird nicht in die Datenbank geschrieben? Dann fehlt ein <transaction>.commit() oder commitretaining(). "SQLQuery1.Fields[3]" und "SQLQuery1.Fields[1]" sollten eigentlich eine Fehlermeldung erzeugen, da dies bestimmt nicht die Feldnamen sind.
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: SQLite und UPDATE
Gibt es in der Tabelle überhaupt ein Feld mit dem Name "SQLQuery1.Fields[3]"?helier hat geschrieben: Meine UPDATE-Zeile:
SQLQuery1.SQL.text:='UPDATE tblMitglied SET SQLQuery1.Fields[3]=(:weg) WHERE SQLQuery1.Fields[1]=(:nme)';
In einem String kann man nicht irgend ein Stück vom Quellcode rein schreiben.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 7
- Registriert: Fr 21. Mär 2014, 10:23
- OS, Lazarus, FPC: Windows Vista, Lazarus 1.2.0
- Wohnort: Kerpen
Re: SQLite und UPDATE
Hallo mse und MnVisual,
danke für eure Hilfe, aber richtig weitergekommen bin ich nicht.
Unten ist Datei und die UPDATE-Zeile.
Wer hat für mich ein Programmstück mit SQLite und UPDATE.
SQLite-Datei:
SqlQuery1.SQL.text:= 'Insert into tblMitglied Values (NULL, :Nach, :Vor, :Stra, :PLZ, :Wohn)';
meine UPDATE-Zeile ohne Funktion aber keine Fehlermeldung:
SQLQuery1.SQL.text:='UPDATE tblMitglied 'SET stra =''Angerstr. 12'' WHERE nach like ''Müller'' ';
danke für eure Hilfe, aber richtig weitergekommen bin ich nicht.
Unten ist Datei und die UPDATE-Zeile.
Wer hat für mich ein Programmstück mit SQLite und UPDATE.
SQLite-Datei:
SqlQuery1.SQL.text:= 'Insert into tblMitglied Values (NULL, :Nach, :Vor, :Stra, :PLZ, :Wohn)';
meine UPDATE-Zeile ohne Funktion aber keine Fehlermeldung:
SQLQuery1.SQL.text:='UPDATE tblMitglied 'SET stra =''Angerstr. 12'' WHERE nach like ''Müller'' ';
-
- Beiträge: 1581
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: SQLite und UPDATE
Poste doch mal bitte Dein komplettes Projekt als ZIP. Das was Du hier schreibst ist mehr oder weniger Chinesisch für den Compiler.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 7
- Registriert: Fr 21. Mär 2014, 10:23
- OS, Lazarus, FPC: Windows Vista, Lazarus 1.2.0
- Wohnort: Kerpen
Re: SQLite und UPDATE
Das UPDATE-Problem ist gelöst.
Gänsefüßchen, Hochkomma, Plus, Variable, Plus, Hochkomma, Gänsefüßchen ...
Beispiel:
tx3:='Lieselotte';
IDNr:='7';
sqlquery1.close;
sqlquery1.SQL.text:='UPDATE tblPers SET VName="'+tx3+'" WHERE ID= "'+IDNr+'" ';
SQLQuery1.ExecSQL;
SQLTransaction1.commit;
Gänsefüßchen, Hochkomma, Plus, Variable, Plus, Hochkomma, Gänsefüßchen ...
Beispiel:
tx3:='Lieselotte';
IDNr:='7';
sqlquery1.close;
sqlquery1.SQL.text:='UPDATE tblPers SET VName="'+tx3+'" WHERE ID= "'+IDNr+'" ';
SQLQuery1.ExecSQL;
SQLTransaction1.commit;
Re: SQLite und UPDATE
Ich bin keine DB Experte, aber bist Du sicher, dass Dein Code gegen SQL-Injection geschützt ist? Also ich würde es so lösen:helier hat geschrieben:Das UPDATE-Problem ist gelöst.
Gänsefüßchen, Hochkomma, Plus, Variable, Plus, Hochkomma, Gänsefüßchen ...
Beispiel:
tx3:='Lieselotte';
IDNr:='7';
sqlquery1.close;
sqlquery1.SQL.text:='UPDATE tblPers SET VName="'+tx3+'" WHERE ID= "'+IDNr+'" ';
SQLQuery1.ExecSQL;
SQLTransaction1.commit;
Code: Alles auswählen
IDNr:='7';
SQLQuery1.SQL.Text := 'UPDATE tblPers SET VName = :VName WHERE ID = '+ IDNr +'';
SQLQuery1.ParamByName('VName').AsString := 'Lieselotte';

-
- Beiträge: 7
- Registriert: Fr 21. Mär 2014, 10:23
- OS, Lazarus, FPC: Windows Vista, Lazarus 1.2.0
- Wohnort: Kerpen
Re: SQLite und UPDATE
Hallo Lion,
ich danke für Deine Hilfe, besonders für den Hinweis auf SQL-Injection.
Gruß helier
ich danke für Deine Hilfe, besonders für den Hinweis auf SQL-Injection.
Gruß helier