• ClientDataSet中的PacketRecords属性,减轻网络负载,提升服务器与客户端性能


    ClientDataSet.PacketRecords属性控制一次性从数据库服务器读取的数据记录条数,默认值-1(表示全部读取),如果数据量很大,会加重网络负载,影响服务器和客户端性能。将

    PacketRecords设置成一合理的正值表示一次从数据库读取的数量,通常局域网设置成100-500,广域网设置成50-200,视自身需求适当调整,当浏览的数量超过时,会自动从服务器中读取PacketRecords个数据。

    下图PacketReords设置为3,注意状态栏中的数值:

    **************************************************************************************

    具体操作:

    **************************************************************************************

    DBGrid1.DataSource->DataSource1.DataSet->ClientDataSet1.ProviderName->DataSetProvider1.DataSet->

    SQLDataset1.SQLConnection->SQLConnection1具体数据库(这里连接的是oracle中的EMP表);

    SQLDataSet1.CommandText:=SELECT * FROM EMP;ClientDataSet1.Active:=true;

    DBNavigator1.DataSource->DataSource1;

    **************************************************************************************

    相关代码:

    **************************************************************************************

    procedure TForm3.ClientDataSet1AfterGetRecords(Sender: TObject;
      var OwnerData: OleVariant);
    begin
      if ClientDataSet1.Active then
      begin
        StatusBar1.Panels[0].Text := format('%d', [ClientDataSet1.RecordCount]);
      end;
    end;

    连接到ClientDataSet1.AfterGetRecords事件中。能上代码中delphi XE5,win7 x64,Oracle 11g中测试通过

  • 相关阅读:
    Grid布局方式
    布局
    应用主题资源
    主题资源
    返回键
    标记 {x:Null},d:DesignWidth,d:DesignHeight
    WMAppManifest.xml
    项目模板
    Panorama和Pivot控件
    ashx页面中context.Session["xxx"]获取不到值的解决办法
  • 原文地址:https://www.cnblogs.com/sun998/p/6505694.html
Copyright © 2020-2023  润新知