读书人

一个简单的DBgrid和Adoquery的有关问题

发布时间: 2013-12-04 17:21:02 作者: rapoo

一个简单的DBgrid和Adoquery的问题
问题描述:
一个Access数据表里,有teim1 time2 ,box,字段,在DBGrid要计算出time1和time2的时间差,如图
一个简单的DBgrid和Adoquery的有关问题
我怎么在查询按钮时候,即能显示出这个表里所有字段还可以计算出剩余时间=time1和time2的时间差呢?剩余时间在数据表里没有这个字段的。

procedure TForm1.btn1Click(Sender: TObject);
var

d: string;
begin
d := 'd';
qry1.SQL.Clear;

qry1.SQL.Text:=('SELECT DATEDIFF('+QuotedStr(d)+', starttime, endtime) as DifTime FROM TBsupp');

qry1.Open;
if qry1.SQL.Count>0 then
begin
tx1.Text := qry1.Fieldbyname('DifTime').AsString;
dbgrd1.Columns[4].FieldName:=qry1.Fieldbyname('DifTime').AsString;
qry1.Next
end;
end;


请大牛指点一下! DBGRID
[解决办法]
其实,楼主只要把时间差当做一个列来处理就好了。
SQL.Text := 'SELECT A.*, DATEDIFF(''d'', A.STARTTIME, A.ENDTIME) AS DifTime FROM TBsupp';

然后在DBGrid中做好关联,时间差字段的FieldName设置为你的列别名—ifTime)

读书人网 >.NET

热点推荐