Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: cxgrid mit NexusDB, Update stoppen

  Alt 25. Apr 2006, 07:07
Ja ja, das alte Refresh-Problem....

Wenn es dir nichts ausmacht, bei einem Refresh jedesmal alle Daten neu zu laden, dann verwende DisableControls/EnableControls sowie ein Bookmark während des Neuladens:
Delphi-Quellcode:
Procedure DatasetRefresh (aDataset : TDataset);
Var
  B : TBookmark;

Begin
  aDataset.DisableControls;
  Try
    B := aDataset.GetBookmark;
    aDataSet.Close;
    aDataset.Open;
    Try // Schützen, weil der ehemals aktuelle Datensatz nun weg sein könnte
      aDataset.GotoBookmark (B);
    Except
    End;
  Finally
    aDataset.FreeBookmark (B);
    aDataset.EnableControls;
  End;
End;
Natürlich geht das noch ausgefeilter, z.B. über den FocusedRecordIndex des TcxGrids, aber das Prinzip ist klar.

Alternative (wenn das Grid nur zur Anzeige dient):
- Entweder ein Unbound Grid verwenden (TcxGridTableView) und die Datacontroller.Values befüllen
- Oder ein Memory-Dataset odr ADO-DS (Lockmode = BatchOptimistic) mit einer Kopie der Master-Dateil Tabellen bilden

und alle DB-Operationen auf diese Clones duplizieren.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat