AdoQuery中包含兩個字段:currCost(float 型),currDate(datetime 型).
在動態更新過程中,如何查找最新日期的currCost值.

解决方案 »

  1.   

    在另一個表OtherTable中有個字段,該字段的值必須為上面的currCost的值,該值對應的currDate 必須最大(即日期必須最新).
    在增新修改currCost,currDate 值時,必須相應修改OtherTable中的值.
    Adoquery中是否有查找某一字段最大值的方法.
      

  2.   

    if DataSet.Active then
      DataSet.Active := False;
    DataSet.SQL.Clear;
    DataSet.SQL.Add('Select Curcost from ..where currdate = ''' + 时间类型变量 + '''');
    Open;注:DataSet为你要应用程序中对应的DataSet.or 
    ......
      'Select Curcost from ..where order by currdate//按日期类型排xu,时间类型可以作为Float看待。
    .......
      

  3.   

    我的sql语句是这样的:
    select Currcost from tablename order by currdate
    打开时是可以把最新的记录放在最上.
    可是在增新的过程中.adoquery在post后,会将新增的记录放在adoquery记录集的最后,这样变成是哪个是最新的变成不确定.因为新增的记录,它的currdate值不一定是最大的.有不想将adoquery close后再open.
    能不能有象计算字段那样能够即时刷新的方法.
      

  4.   

    with ADOQuery do
    begin
      Filter:='CurrDate>'+QuotedStr(DateToStr(0));
      if FindLast then
        showmessage(FieldValues['CurrCost']
    end;
      

  5.   

    我想到辦法了.
    在AdoQuery的AfterPost和AfterDelete事件中,重新排序即可:
    AdoQuery.sort:='CurrDate DESC';
    謝謝大家.