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看待。 .......
我的sql语句是这样的: select Currcost from tablename order by currdate 打开时是可以把最新的记录放在最上. 可是在增新的过程中.adoquery在post后,会将新增的记录放在adoquery记录集的最后,这样变成是哪个是最新的变成不确定.因为新增的记录,它的currdate值不一定是最大的.有不想将adoquery close后再open. 能不能有象计算字段那样能够即时刷新的方法.
with ADOQuery do begin Filter:='CurrDate>'+QuotedStr(DateToStr(0)); if FindLast then showmessage(FieldValues['CurrCost'] end;
在增新修改currCost,currDate 值時,必須相應修改OtherTable中的值.
Adoquery中是否有查找某一字段最大值的方法.
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看待。
.......
select Currcost from tablename order by currdate
打开时是可以把最新的记录放在最上.
可是在增新的过程中.adoquery在post后,会将新增的记录放在adoquery记录集的最后,这样变成是哪个是最新的变成不确定.因为新增的记录,它的currdate值不一定是最大的.有不想将adoquery close后再open.
能不能有象计算字段那样能够即时刷新的方法.
begin
Filter:='CurrDate>'+QuotedStr(DateToStr(0));
if FindLast then
showmessage(FieldValues['CurrCost']
end;
在AdoQuery的AfterPost和AfterDelete事件中,重新排序即可:
AdoQuery.sort:='CurrDate DESC';
謝謝大家.