![]() |
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Zitat:
|
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Laut
![]() schau dir mal BufferCount bzw. AutoBufferCount an. |
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Zitat:
Aber bei der benutzung muss man wirklich einiges beachten. Es reicht nicht einfach nur AutoBufferCount zu setzten. In dem Fall holt er nur zwei Zeilen. Das liegt an dem AutoActivate. Dabei fängt er direkt an Daten im Grid einzutragen, nachdem die erst Zeile in die MemTable kommt. Er ignoriert das DisableControls einfach mal, wenn es nach dem memtable.Active:=true kommt. Setzt man AutoBufferCount auf False und BufferCount auf 10001, Macht er es irgendwann, aber es dauert 10-20 Minuten bis er was anzeigt. Im Code Beispiel setze ich das AutoActivate auf false und aktiviere erst mit
Delphi-Quellcode:
die Verbindung zwischen Daten und Grid.
LinkGridToDataSourceBindSourceDB1.Active:=true;
40 milliSek. bis zur Anzeige sind dann wirklich sehr gut.
Delphi-Quellcode:
Unter XE3 geht das ganze fast genauso schnell,
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; ti:Cardinal; begin Button1.Enabled:=false; LinkGridToDataSourceBindSourceDB1.AutoActivate:=false; LinkGridToDataSourceBindSourceDB1.Active:=false; LinkGridToDataSourceBindSourceDB1.BufferCount:=-1; LinkGridToDataSourceBindSourceDB1.AutoBufferCount:=true; with FDMemTable1 do begin DisableControls; //WICHTIG muss vor dem Aktivieren schon deaktiviert sein wenn AutoActivate=true! Active:=true; for i := 0 to 10000 do begin Append; FieldByName('id').AsInteger:=i; FieldByName('test').AsString:='asdsadasdasdasd'; Post; end; First; EnableControls; Memo1.Lines.Add(IntToStr(BindSourceDB1.DataSet.RecordCount)); end; ti:=GetTickCount; LinkGridToDataSourceBindSourceDB1.Active:=true; ti:=GetTickCount-ti; Memo1.Lines.Add('zeit: ' + IntToStr(ti)+ ' msek'); Button1.Enabled:=true; end; Dort waren es 70ms im Durchschnitt. Wär ja mal was für EMBA darauf hinzuweisen, bei Daten über 200 Records es einiges zu beachten gilt. |
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Zitat:
|
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Das wäre ein Spektakel.
Aber auch jetzt schon einmal vielen Dank noch einmal aufzuzählen, was man alles braucht. |
AW: [XE5] Firemonkey unter XE5, Einfache Datenanbindung
Werd ich machen, aber ich versuche grade herauszufinden, warum das ganze von der Performance einbricht, wenn es eine richtige Tabelle ist.
EDIT: ACHJA Der Doku eintrag von EMBA zu AutoBufferCount: Embarcadero Technologies verfügt zurzeit über keine zusätzlichen Informationen. Bitte unterstützen Sie uns bei der Dokumentation dieses Themas, indem Sie Ihre Kommentare auf der Diskussionsseite eingeben. ![]() Das ist doch SUPER! XD |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz