Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

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

Re: RecordCount synchronisieren zwischen ibQuery und ibtable

  Alt 28. Nov 2006, 14:26
Hi Darkchild,

oh oh - dein Code...

Also erst mal folgendes.
In deinem ersten Codeschnipsel läßt du dir in einer Schleife immer wieder den selben Wert geben.

Warum den Wert 10000 mal holen, nur weil 10000 Records da sind. Das tut es auch:
Delphi-Quellcode:
procedure Tfrmzeiterfassunguebersicht.cxbtndatensperrenClick(Sender: TObject);
begin
  ShowMessage(inttostr(cDataModuleMain.ibtablezeiterfassung.RecordCount));
end;
Jetzt zur TcxGrid.
Diese kennt 2 Modi, und die sind sehr wichtig!
GridMode := True und GridMode := False.
Ohne GridMode (Standard) lädt die Grid alle Records aus der DB in einen eigenen Speicher und filtert, sortiert, gruppiert etc. mit den eigenen Daten.
In diesem Mode ist Alles einfach und Alles möglich. (Gruppierung, Summierung etc.)
Der Nachteil ist, dass der Server mächtig zu tun bekommt, denn er muss alle Records liefern. Und das DataSet (Query) ist nicht synchron mit den Daten der Grid.
Bei grösseren Datenmengen sollte man also im GrideMode arbeiten. Hier muss man zum Sortieren und Filtern etwas Hand anlegen. Dazu kann man erst mal die GrideMode - DEMO studieren.
Hier ist die Datenmenge der Grid mit der Query immer synchron. Nachteil: Gruppieren und Gruppensummen sind nicht mehr möglich.

Du musst also erst mal die entscheidende Frage klären, GridMode oder nicht.

IMHO sollte der DataController der Grid den Recordcount für die Daten der Grid liefern.
Na ja, ist ein schwieriges Thema, aber die Hürde sollte man erst mal nehmen.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat