Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: RecordCount synchronisieren zwischen ibQuery und ibtable

  Alt 29. Nov 2006, 08:59
Hallo Darkchild,

mal sehen, ob ich helfen kann.
Mit der folgenden Methode durchläufst du die gefilterten Records der Grid und ermittelst die ID:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  i : Integer;
  ID: Integer;
begin
  with cxGridView.DataController do
  begin
    for i := 0 to FilteredRecordCount - 1 do
    begin
      // ID ermitteln anhand des Index
      ID := GetRecordId(FilteredRecordIndex[i]);
      // Jetzt am Besten eine SP zum Setzen von gesperrt auf Feld mit dieser ID
    end;
    // und jetzt ein Refresh auf die Table
    // das Refresh ist ausreichend, wenn die Table mit der Query eine gemeinsame Transaction benutzt.
    // Sonst wäre ein CommitRetaining der SP und der Table notwendig.
  end;
end;
Voraussetzung ist, dass du das Feld mit der eindeutigen ID in der Grid einträgst:
cxGridView.DataController.KeyFieldNames := 'zeiterfassung_id'; das geht auch im OI.
Ich denke, wenn du die zeiterfassung_id hast, kommst du weiter.

Wenn ich in der Grid eine Abfrage mit mehreren Tabellen habe und benötige Änderungen, erzeuge ich auf der DB einen Updateable View. Da kannst du über Trigger steuern, wie in welchen Tabelle Werte eingetragen werden.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat