SQL速度的问题(100分)

  • 主题发起人 主题发起人 宝贝猫
  • 开始时间 开始时间

宝贝猫

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TdmManage.adsBJDCalcFields(DataSet: TDataSet);
begin
ADOQueryCalc.Close;
ADOQueryCalc.SQL.Text := 'Select Sum(DJ*SL*ZK/100) as ZJJE from BJDList Where BJDID = '
+IntToStr(dmManage.adsBJD.FieldByName('ID').AsInteger) ;
ADOQueryCalc.Open;
adsBJDBJZJE.Value := ADOQueryCalc.FieldByName('ZJJE').AsFloat;
end;
我的一个计算字段的值是从子表中通过上面的代码计算出来的,可是计算速度太慢。各位大侠能否告诉我如何提高它的计算速度。
 
把数据拿到前台,然后计算,这样的速度应该会快一些。
 
考虑写个存储过程,计算部分交给后台,速度会快不少。
 
建立视图或存储过程!
 
你用Sql来给计算字段来赋值,这样onCalcFields事件每执行一次你就要执行一条Sql语句,这样的效率是非常低的!
你可以这样,在打开出表时,将从表的和主表有关的要计算的数据先通过Sql语句一次取出来,这样在这个事件中你就不用再到后台取数据,直接在本地取数据的速度是非常快的,这样做可以大幅提高效率。
 
我用的是ACCESS 2000,存储过程怎么写啊?
 
access 的效率本来就比较低,如果表很大,超过10万条记录我建议还是用sql server吧
 
access也有存储过程可写
语法与SQLSERVER差不多
查看一下参考书就知道了.
 
后退
顶部