Ja Soner,
das war es.
Ich hatte TZConnection.TransactIsolaltionLevel auf None stehen.
Jetzt klappt es auch ohne ZConnection Discommet/Commit.
Danke, danke, danke.
Alles Gute bis dem Nächst.
Gruß
Jürgen
ZEOS Insert, Update und Delete
Re: ZEOS Insert, Update und Delete
Leider will diese Version nicht auf Lazarus 3.4 mit FPC 3.2.2 kompilieren. Aber ich habe die Version 7.2.14-stable überprüft und sie liefert die Anzahl der geänderten Datensätze ohne Probleme.Soner hat geschrieben: 7.2.4.-stable.
Grüße / Pozdrawiam
paweld
paweld
Re: ZEOS Insert, Update und Delete
Der letzte Beitrag ist schon bisschen älter aber, ich wollte das dennoch noch hinzufügen da ich das so nicht gelesen habe hier.
Also wenn ich z.b. etwas Speichern möchte, mache ich das wie folgt, wenn z.b. mehrere Tabellen beteiligt sind.
Ich sag der Transaction das jetzt was passiert, dann kommt ein Try except block und dann wird der status abgefragt der Querys usw. und was gemacht werden soll. Und falls etwas schief geht dann bekommt man ne Meldung über den Fehler.
eventuell hilft das. Eventuell funktioniert das auch mit Joins, hab ich noch nicht probiert.
Also wenn ich z.b. etwas Speichern möchte, mache ich das wie folgt, wenn z.b. mehrere Tabellen beteiligt sind.
Ich sag der Transaction das jetzt was passiert, dann kommt ein Try except block und dann wird der status abgefragt der Querys usw. und was gemacht werden soll. Und falls etwas schief geht dann bekommt man ne Meldung über den Fehler.
eventuell hilft das. Eventuell funktioniert das auch mit Joins, hab ich noch nicht probiert.
Code: Alles auswählen
procedure TFramePersonDetail.BtnSave1Click(Sender: TObject);
begin
DataModule1.ZTransaction1.StartTransaction;
try
if DataModule1.ZQPerson.State in [dsEdit, dsInsert] then
DataModule1.ZQPerson.Post;
if DataModule1.ZQVertrag.State in [dsEdit, dsInsert] then
DataModule1.ZQVertrag.Post;
DataModule1.ZTransaction1.Commit; // Transaktion erfolgreich abschließen
except
on E: Exception do
begin
DataModule1.ZTransaction1.Rollback; // Bei einem Fehler Transaktion zurückrollen
// ShowMessage('Fehler beim Speichern: ' + E.Message);
end;
end;
end;