Autor Beitrag
JRegier
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Do 18.08.05 08:20 
Hi, ich benutze ZQuery von Zeos um auf MySQL DB zuzugreifen!

Wenn ich ZQuery.Post aufrufe dann wird eine Exception ausgelöst
'Can not update this query type'

Da ist auch keine INNER JOIN Abfrage im Spiel also einfach SELECT * FROM TABELLE
wenn ich Insert aufrufe zeigt die DB Navi auch an das die Tabelle im Insert Modus
sich befindet aber bei Post gibts diese Fehlermeldung trotz RequestLive := True;

Wie gehe ich vor? Muß ich die ZUpdateSQL verwenden?
Keine Ahnung wie das System funzt also die
ZQuery hat ein property UpdateObject vieleicht muß da ein ZUpdateSQL angemeldet sein
und es funzt dann sogar bei INNER JOIN Abfragen?
TheOutlaw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19


Delphi 6-7,2007
BeitragVerfasst: Do 18.08.05 14:14 
??? Also eine Query ist eine reines Leseobjekt. Query.Post kann Du vergessen. Wenn Du nun aber einen Datensatz z.B. einfügen möchtest, dann musst du der Query.sql.text deine INSERT oder UPDATE Anweisung eintragen. Z.B. query.sql.text:='UPDATE test SET name="Harald" WHERE id=1". Gefolgt von query.ExecSQL und evtl. Query.Active:=True. Dann wird deine Anweisung ausgeführt. Jedoch gehen die evtl. zuvor mit "Select" gefundenen Datensätze verloren (nicht aus der DAtenbank aber aus deinen Grid'S, Edit's usw.).
JRegier Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1268

Win XP Home, Prof, 2003 Server
D6 Enterprise
BeitragVerfasst: Do 18.08.05 14:23 
user profile iconTheOutlaw hat folgendes geschrieben:
??? Also eine Query ist eine reines Leseobjekt. Query.Post kann Du vergessen. Wenn Du nun aber einen Datensatz z.B. einfügen möchtest, dann musst du der Query.sql.text deine INSERT oder UPDATE Anweisung eintragen. Z.B. query.sql.text:='UPDATE test SET name="Harald" WHERE id=1". Gefolgt von query.ExecSQL und evtl. Query.Active:=True. Dann wird deine Anweisung ausgeführt. Jedoch gehen die evtl. zuvor mit "Select" gefundenen Datensätze verloren (nicht aus der DAtenbank aber aus deinen Grid'S, Edit's usw.).


Nein, nein, nein!

1) Bei Update operationen setze ich nicht Query.Active := True sondern rufe Query.ExecSQL; aus!
2) Wenn ich bei der Query RequestLive := True setze kann ich auch mit Post speichern! Das kenn ich so von der Standard TQuery
habe gerade so mit der TQuery gemacht, funzt einwandfrei!

3) Bei Zeos Komponenten ist extra eine ZReadOnlyQuery dabei! Mit der ZQuery sollte man Post ausführen können!

4) Wenn ich eine INNER JOIN Abfrage gemacht habe dann klappt Post natürlich nicht aber ich habe im Moment nun mal
eine einfache Abfrage SELECT * FROM `tabelle`