Wenn Ich in Delphi (FMX) FireDAC eine Update einer Tabelle ausführen möchte Friert das ganze Programm ein. Es geht nichts mehr. Ich muss es killen.
Wenn ich eine andere Query welche die selbe Tabelle geöffnet hat auf Active := false setze funktioniert es. Die andere Query ist ReadOnly, aber das mach keinen Unterschied.
LockMode ist überall auf lmNone gestellt und sollte auch nur dann ein Problem sein, wenn Ich in einem anderen Query einen Record bearbeite, dass passiert aber nirgendwo.
In ADO war das noch nie ein Problem.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TFrmMain.PopupMenuProjekteClick(Sender: TObject); var q: TFDQuery; begin if Sender.ClassNameIs('TMenuItem') and (FDQProjekte.RecordCount > GridProjekte.Selected) then with Sender as TMenuItem do begin q := TFDQuery.Create(Self); try FDQProjekte.RecNo := GridProjekte.Selected + 1; q.Connection := DoppData.FDConnection; q.SQL.Text := 'SELECT id,Status from dbo.UserProjekt where Id=' + FDQProjekteId.AsString; q.Active := true; q.First; q.Edit; q.FieldByName('Status').AsInteger :=Tag; q.Post; q.Active := false; finally q.free; end; end; UpdateFilter(true); end; |