Für
Access nicht zu gebrauchen da hier üblicherweise mit clServer gearbeitet wird, aber für
SQL-Server mit Datenmengen die den Gridmode benötigen (~>5000) verwende ich ein Event in meinem Template welches den Views zugeordnet wird um die Daten entsprechend der über dass Grid zu definierenden Sortierungen clientzseitig über
ADO-Sort abfackelt.
Delphi-Quellcode:
Const
C_SORTTYPE:Array[TcxDataSortOrder] of String=('ASC','ASC','DESC');
procedure TTemplate.AllGridDataControllerSortingChanged(Sender: TObject);
var
i:Integer;
sl:TStringList;
begin
if TcxGridDBDataController(Sender).DataModeController.GridMode then
begin
sl:=TStringList.Create;
sl.Delimiter := ',';
sl.StrictDelimiter :=true;
for I := 0 to TcxGridDBDataController(Sender).GridView.SortedItemCount - 1 do
begin
if TcxGridItemDBDataBinding(TcxGridDBDataController(Sender).GridView.SortedItems[i].DataBinding).Field.FieldKind=fkData then
sl.Add(TcxGridItemDBDataBinding(TcxGridDBDataController(Sender).GridView.SortedItems[i].DataBinding).FieldName + ' '
+ C_SORTTYPE[TcxGridDBDataController(Sender).GridView.SortedItems[i].SortOrder])
end;
TAdodataset(TcxGridDBDataController(Sender).Datasource.DataSet).Sort
:= sl.DelimitedText;
sl.Free;
end;
end;