Oooops,
in der Tat hätte ich mehr Infos geben können:
SUSE 11.1 / KDE / Lazarus 09.26.2 beta , FPC 2.2.4, ZEOS 6.6.2.
Hier die relevante Procedure:
Code: Alles auswählen
Procedure TForm1.AblesewerteFiltern;
var F1,S1,S2 : String;
i : integer;
AblDate : String;
ID_Geraet : Integer;
JStr : string;
AbrJahr : String;
LStr : String;
ZStr : String;
SStr : String;
FStr : String;
WStr : String;
Begin
SStr:=(' Ablesewerte.ID,Nutzer.NutzerNr,Geraete.Raum,Nutzer.Nachname,Geraete.GeraeteNr,Geraete.Faktor,Ablesewerte.Ablesewert,Ablesewerte.Ablesedatum ');
FStr:=(' FROM Geraete LEFT JOIN Ablesewerte ON (Geraete.ID=Ablesewerte.ID_Geraet) LEFT JOIN Nutzer ON (Geraete.ID_Nutzer=Nutzer.ID)');
LStr:=(ZQuery_Liegenschaften.FieldByName('ID').AsString);
JStr:=(ZQuery_Liegenschaften.FieldByName('AbrJahr').AsString);
ZQuery_Ablesewerte.SQL.Text:='SELECT '+SStr+FStr+ ' WHERE Nutzer.Historie = 0 AND Geraete.ID_Liegen='+LStr+' AND Ablesewerte.AbrJahr='+JStr;
ZQuery_Ablesewerte.Active:=True;
// showstring(ZQuery_Ablesewerte.SQL.Text);
end;
OK, es sind also 3 Tabellen
DBgrid: Im Objektinspektor steht bei Datasource: Datasource_Ablesewerte
ZQuery: Im Objektinspektor steht bei Dataset: ZQuery_Ablesewerte.
Im Moment mache ich es folgendermaßen:
In einem TEdit trage ich einen Wert ein und eine 2.te ZQuery updatet dann die Tabelle Ablesewerte. (nur diese allein).
Anschließend wird ZQuery_Ablesewerte refresht.
Das geht mit mysql 3.23 und 5.0 ganz gut, ist aber recht aufwendig, insbsondere wenn noch diverse ähnliche Sachen geplant sind.
(Diverse andere Join und Tabellenupdates)
Ich möchte lieber statt des TEdt eine TDBEdit nehmen und direkt ohne 2.tes ZQuery die Werte ändern.
Dazu hatte ich u.a. folgendes gelesen:
http://www.issociate.de/board/post/1878 ... ellen.html" onclick="window.open(this.href);return false;
Sinngemäß ähnliches findet man auch an vielen anderen Stellen im Netz.
Fazit:
Starting with MySQL 4.0.4, you can also perform UPDATE operations
that cover multiple tables. ist zu beachten.
Deswegen hatte ich den mysql-server auf 5.0 upgedatet.
Trotzdem bekomme ich den anfänglich genannten Fehler.
Also: Mache ich etwas falsch oder geht es trot Serverupdate nicht( z.B. wegen fpc, Zeoa oder sonstigen)?
MfG, Peter