Delphi XE3 - TDataSet的性能问题

时间:2013-03-24 09:25:27

标签: delphi delphi-xe3

使用XE3程序进行数据处理的次数比使用XE2编译的相同程序多10倍。这是已知问题(可能主要指TStringField),报告给QC 111942,但尚未修复。是否有人针对此问题进行了修复/解决方法?

TIA Branko

1 个答案:

答案 0 :(得分:0)

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字符串网格。当然,你会考虑处理更新等问题,但是你没有更多的性能问题。