Einzelnen Beitrag anzeigen

Stefan1286b

Registriert seit: 6. Jan 2012
Ort: Dinklage
25 Beiträge
 
Delphi 11 Alexandria
 
#1

FireDAC Update durch TFDQuery

  Alt 4. Okt 2020, 11:09
Datenbank: MSSQL • Version: 2017 • Zugriff über: FireDAC
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.

Code:
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;
Ja ich könnte es auch mit UPDATE lösen. Aber nächste Schritt sind Änderungen mit Steuerelementen. Dort wird dann auf jedenfall mit TFDQuery gearbeitet und dass Problem ist wieder da. Bei ADO ging es ohne Probleme.

Ich hatte es gestern schon bei entwickler-ecke.de gepostet (Da Delphi-Praxis gestern nicht erreichbar war.) da konnte mir aber noch nicht geholfen werden.
https://entwickler-ecke.de/viewtopic.php?p=718261#
  Mit Zitat antworten Zitat