这个函数应该怎么写?(20分)

  • 主题发起人 主题发起人 晨空
  • 开始时间 开始时间

晨空

Unregistered / Unconfirmed
GUEST, unregistred user!
有下面一段
datam.QY_yesterday.Close;
datam.QY_yesterday.SQL.Clear;
datam.QY_yesterday.SQL.Add('select * from datedata where datet=:a');
datam.QY_yesterday.Parameters.ParamByName('a').Value:=datetostr(date-1);
datam.QY_yesterday.Open;

datam.QY_today.Close;
datam.QY_today.SQL.Clear;
datam.QY_today.SQL.Add('select * from datedata where datet=:a');
datam.QY_today.Parameters.ParamByName('a').Value:=datetostr(date);
datam.QY_today.Open;

datam.QY_tomorrow.Close;
datam.QY_tomorrow.SQL.Clear;
datam.QY_tomorrow.SQL.Add('select * from datedata where datet=:a');
datam.QY_tomorrow.Parameters.ParamByName('a').Value:=datetostr(date+1);
datam.QY_tomorrow.Open;
现在我想把这三段结构基本相同的代码作成函数或过程,不知道应该该怎么写,我
菜得很,自己做了一下
procedure TFM_main.setevent(var query:tadoquery
datat:Tdatetime);
begin
query.close;
query.sql.clear;
query.sql.add('');
query.open;

end;
可是不行,请问大家该怎么办?
 
呵呵,自己是编译试试!
 
....
Query.SQL.Add('select * from datedata where datet=:a');
Query.Parameters.ParamByName('a').Value:=datetostr(datet);
Query.Open;
 
太简单了:
procedure LoadQuery(Q: TQuery
Day: Integer);
begin
Q.SQL.Text := 'select * from datedata where datet=:a';
Q.Parameters.ParamByName('a').Value:=datetostr(Day);
Q.Open;
end;

调用:
LoadQuery(DM.Yesterday, Date-1);
LoadQuery(DM.Today, Date);
LoadQuery(DM.Yesterday, Date+1);
 
这种程序我也作过,思路和楼上的一样!
用with 好一点
procedure LoadQuery(Q: TQuery
Day: tdatetime);
begin
with q do
begin
close;
sql.clear;
sql.add('select * from datedata where datet=:a');
parambyname('a').asdatetime:=day;
open;
end;

调用:
LoadQuery(DM.Yesterday, Date-1);
LoadQuery(DM.Today, Date);
LoadQuery(DM.Yesterday, Date+1);
 
后退
顶部