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中测试通过