高手的园地

help_date 2004-11-10 02:06:27
我想实现一个记录日志的功能,其中有一项是控制日志在数据库中的时间(比如说保留为n天),过了n 天以后就要删除旧的日志.我是这样实现的,可是就是不能删除掉数据的.
integer li_day,li_row,num
string path,id,days,str
date riq,t_date
datetime a,c,b
riq=today()
num=7
path="c:\"
id='1'
select count(*) into :li_row from setup;
if li_row=0 then
INSERT INTO setup ( path,lasts,daynum,setupday_id )
VALUES ( :path,:riq,:num,:id );
else
关键要看下面的代码:li_day是表setup中的字段为保留日志的天数,days为日志表howdo中的日志日期字段.
SELECT setup.daynum into:li_day FROM setup ;
declare cur_dept cursor for
SELECT howdo.days FROM howdo ;
open cur_dept;
fetch cur_dept into:b;
t_date=relativedate(today(),-(li_day))
c=datetime(t_date)
do while t_date=date(b)
DELETE FROM howdo WHERE howdo.days = :b ;
fetch cur_dept into:b;
loop
close cur_dept ;
end if
...全文
151 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyangibing 2004-11-11
  • 打赏
  • 举报
回复
首先声明我不是高手……
注意删除时要先删外键表,后删主表
  • 打赏
  • 举报
回复
是不是有外键关系不能删除
ljl2004 2004-11-11
  • 打赏
  • 举报
回复
同意楼上
no_think 2004-11-11
  • 打赏
  • 举报
回复
游标循环有问题,自己再检查检查吧!还有做插入删除不能在游标内部作commit操作
放到close cursor后面
jlwei888 2004-11-11
  • 打赏
  • 举报
回复
我来接分
31737951 2004-11-10
  • 打赏
  • 举报
回复
这个标题是不爽
纸飞机2017 2004-11-10
  • 打赏
  • 举报
回复
请注意标题!这种垃圾问题!
mittee 2004-11-10
  • 打赏
  • 举报
回复
DELETE FROM howdo WHERE howdo.days = :b ;
commit;
行不行,还有howdo.days = :b 这个条件是否成立。

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧