MySQL Lösungen
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Ist aber derzeit nur im SVN zum Selbstkompilieren 

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
af hats gerade veröffentlicht, siehe News
ansonsten ungefähr so:
wenn du das in die SQL-Property der Query schreibst, kannst du die Parameter belegen mit:
Alternativ kannst du die Query auch gleich zusammensetzen, also anstatt der Parameter die Werte einsetzen, sie der SQL-Eigenschaft zuweisen und genauso ausführen.
Danach ein Query.ExecSQL und es sollte eigentlich gehen.
ansonsten ungefähr so:
Code: Alles auswählen
INSERT INTO NEW_TABLE (teststring) VALUES (:XSTRING);
Code: Alles auswählen
Query.Params.ParamByName('XString').AsString := 'blabla'
//usw.
Danach ein Query.ExecSQL und es sollte eigentlich gehen.
Johannes
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Kurzfassung: Bei SELECT nimm open, bei allen anderen ExecSQL.
Wenn du ein einfaches select verwendest, dann kannst du auch direkt in der Datenmenge was löschen einfügen oder änder. Die query probiert dann das ganze in die DB zu bringen und mit ApplyUpdates landes es auch sicher darinnen.
Wenn du ein einfaches select verwendest, dann kannst du auch direkt in der Datenmenge was löschen einfügen oder änder. Die query probiert dann das ganze in die DB zu bringen und mit ApplyUpdates landes es auch sicher darinnen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Ich frag mich die ganze Zeit, wofür ihr ApplyUpdates benötigt. Commit übernimmt die Änderungen und über CommitRetain wird die Verbindung gehalten und ne neue Anfrage bzw. nen Neustart der Anwendung liefert dann die neu Eingefügten Datensätze.
Die Verbidung muss natürlich aktiv sein, aber ansonsten kann man doch direkt das Insert über die Query ausführen und fertig. Und die Query muss natürlich wieder geschlossen werden, weil ja die Abfrage geleert werden muss.
Die Verbidung muss natürlich aktiv sein, aber ansonsten kann man doch direkt das Insert über die Query ausführen und fertig. Und die Query muss natürlich wieder geschlossen werden, weil ja die Abfrage geleert werden muss.
Johannes
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
@christian: Entweder nur mit Open oder nur mit ExecSQL. Die Fehlermeldung ist somit klar. Wenn du unbedingt selbst das mit dem Insert (update,delete) machen willst, warum glaubst Du gibt es UpdateSQL, InsertSQL und DeletSQL. Dann kannst du vorgeben was gemacht werden soll.
@monta Du verwendest explizit die Transaktionsteurung dafür, meistens wird für einfache Statements die implizite genommen - sprich der User belastet sich nicht damit. ApplyUpdates brauchst du dann damit die Daten aus dem lokalen Buffer zurück endgültig in die DB kommen. Ausserdem ist nach einen ExecSQL die Query immer 'zu'. Wozu auch aktiv, es gibt ja keine Datenmengen.
@monta Du verwendest explizit die Transaktionsteurung dafür, meistens wird für einfache Statements die implizite genommen - sprich der User belastet sich nicht damit. ApplyUpdates brauchst du dann damit die Daten aus dem lokalen Buffer zurück endgültig in die DB kommen. Ausserdem ist nach einen ExecSQL die Query immer 'zu'. Wozu auch aktiv, es gibt ja keine Datenmengen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Langsam verstehe ich auch, warum die SQLdb nicht so gerne verwendet wird. TSQLQuery ist eine sehr komplexe, heikle Komponente. Sie reagiert auf kleinste Unzulänglichkeiten sehr empfindlich.
Sie macht nämlich genau das was man ihr sagt und nicht das was man will.
Vor allen probiert sie etwas aus jeder Situation zu machen und das geht bei komplexeren Statements komplett daneben.
Sie macht nämlich genau das was man ihr sagt und nicht das was man will.
Vor allen probiert sie etwas aus jeder Situation zu machen und das geht bei komplexeren Statements komplett daneben.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Also es geht erstmal aber zufrieden bin ich damit nicht.
ich öffne das query mit einer select um rauszufinden ob der datendatz schon existiert.
wenn nicht muss ichs wieder schliessen damit ich das insert machen kann.
und nachdem ich die inserts durch hab muss ich dann nochmal n komplett sinnloses select machen damit ich applyupdates ausführen kann.
das was mich am meissten stört ist das ich zig selects machen muss um erstmal rauszufinden ob die datensätze da sind.
ich öffne das query mit einer select um rauszufinden ob der datendatz schon existiert.
wenn nicht muss ichs wieder schliessen damit ich das insert machen kann.
und nachdem ich die inserts durch hab muss ich dann nochmal n komplett sinnloses select machen damit ich applyupdates ausführen kann.
das was mich am meissten stört ist das ich zig selects machen muss um erstmal rauszufinden ob die datensätze da sind.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/