使用XE3程序進行數據處理比使用XE2編譯的相同程序要多10倍。這是已知問題(可能主要指的是TStringField),報告爲QC 111942,但尚未確定。有沒有人對此問題有修正/解決方法?Delphi XE3 - TDataSet性能問題
TIA Branko
使用XE3程序進行數據處理比使用XE2編譯的相同程序要多10倍。這是已知問題(可能主要指的是TStringField),報告爲QC 111942,但尚未確定。有沒有人對此問題有修正/解決方法?Delphi XE3 - TDataSet性能問題
TIA Branko
與XE5相同。加上額外的流量,所有這些客戶端 - 服務器的東西需要> 5 Mbit每秒(!)才能正常工作。我只使用TFDConnection和TFDQuery。特別是對於MySQL,速度與Delphi組件以及第三方驅動程序(libmysql.dll)相同。如果你沒有FireDAC,你可以用TSQLQuery代替TFDQuery。以下是一個如何填充字符串網格的過程:
procedure SelGrid(sql:ansiString;Q:TFDQuery;grid:TStringGrid);
var i: integer;
begin
Q.Close;
Q.SQL.Text:='';
Q.Open(sql);
grid.ColCount:=Q.FieldCount;
grid.RowCount:=1;
while not Q.Eof do begin
for i := 0 to grid.ColCount-1 do grid.Cells[i,grid.RowCount-1]:=Q.Fields.Fields[i].AsString;
grid.RowCount:=grid.RowCount+1;
Q.Next;
end;
Q.Close;
if grid.RowCount>1 then grid.RowCount:=grid.RowCount-1;
grid.Row:=0;
//AutoSizeGridColumns(grid,30,200);
end;
這是VCL字符串網格。當然你可以處理更新等等,但是你不會有更多的性能問題。
恕我直言,你唯一的希望是降級或使用一些第三方內存表組件 – ComputerSaysNo 2013-03-24 13:05:51
@ComputerSaysNo - 問題不是TClientDataset特定的,我甚至不使用CDS – Branko 2013-03-24 18:03:23