listview中的第5列中有日期
listview中的内容是从数据库中读出
listview的行数不确定
我想让当前的时间减去listview第5列中的日期
将差值改写到数据库中”费用“字段里,并且更新listview第7列中费用下的相对映的内容!
请大家尽量写清楚一点,我是初学,谢谢!
listview中的内容是从数据库中读出
listview的行数不确定
我想让当前的时间减去listview第5列中的日期
将差值改写到数据库中”费用“字段里,并且更新listview第7列中费用下的相对映的内容!
请大家尽量写清楚一点,我是初学,谢谢!
数据库中的内容是在当前数据表中的借出日期里,listview第5列就是读取这个字段中的内容
需要达到的就是上面的功能,刚才那一贴没人能回答正确!
我希望能给出原码
刚才有朋友给出这样的代码,但编译通不过while not adotable1.eof do
with adotable1 do
begin
edit;
fieldbyname('费用').asinteger := date-fieldbyname('借出日期').asdatetime;end;
adotable1.Next;
listview1.items.subitems.strings[4];就是它的值
转换为日期
strtodatetime(listview1.items.subitems.strings[4]);
用当前时间减
得到的值放到第7列中
var
s: string;
s := datetimetostr(now() - strtodatetime(listview1.items.subitems.strings[4]));
listview1.items.subitems.strings[6] := s;
更新数据库用s去更新
'update tablename set 费用 = ' + s 要加条件
表名是table1,存放日期的字段名是date1,费用字段是f1
可以这样写
query1.sql.text:='update table1 set f1=sysdate-date1';
query1.execsql;
ado1.execsql;运行时会出错我需要的是每半小时对数据库进行检查,如果当前日期-借出日期的值大于1那么就将差值*2写到费用上去,很简单的呀……
我可能没有说明白…
sysdate没有默认值
ado1.sql.text:='update 当前数据 set 费用=sysdate-借出日期';
ado1.execsql;这条代码没有历遍数据库能修改其中的所有内容吗?
如果你还是不明白,就在QQ上说吧
把你的QQ号给我
对了,Sysdata指什么呢?是数据库的函数吗?我好象没见过这种函数呢!
我的qq是948905