主题:  关于Access数据库的删除问题

luolanxisi

职务:普通成员
等级:1
金币:0.0
发贴:156
#12002/10/9 1:34:54
最近做一个留言本,想实现一旦记录满100条,等写入101条时,自动删除最早的1条记录,
我初始的想法是:

<%do while not EOF
i = i + 1
if i > 100 then
(删除数据库最早的一条记录)
exit do
end if%>

<%Rs.movenext
loop
Rs.close
set Rs = nothing%>

可是我不知道删除数据库最早的一条记录这个语句怎么写,
请各位高手指点一下.如果知道其他实现方法的也可以,谢谢.



绿茶

职务:普通成员
等级:8
金币:10.0
发贴:19267
#22002/10/9 8:42:42
用排序呀
sql="select top 1 id from tbname order by id"
set rs=conn.execute(sql)
if not rs.eof then
delid=rs("id")
else
delid=0
end if



luolanxisi

职务:普通成员
等级:1
金币:0.0
发贴:156
#32002/10/9 12:17:11
非常感谢前辈的指教,不过还有一些小问题,我本来
的代码是中间夹着一个表格的,象下面:

<%do while not EOF
i = i + 1
if i > 100 then
(删除数据库最早的一条记录)
exit do
end if%>





<%=Rs("message")%>


<%Rs.movenext
loop
Rs.close
set Rs = nothing%>

如果按前辈的那样写,应该把表格插在什么地方?
另外请教一下,前辈的那段代码是什么地方控制记录数量上限的???
如果我想把100改为10的话应修改什么地方?
还有那个id是什么???如果记录上限为10条应怎样修改它.
我的ASP很菜的说,还望高人指教.


编辑历史:[这消息被luolanxisi编辑过(编辑时间2002-10-09 12:19:22)]


今晚在线

职务:普通成员
等级:3
金币:1.0
发贴:761
#42002/10/9 14:00:51
<%
sql="select top 1 id from tbname order by id"
set rs=conn.execute(sql)
if not rs.eof then
delid=rs("id")
else
delid=0
end if


do while not EOF
i = i + 1
if i > 100 then

dol = "delete from tbname where id="&delid
on error resume next
conn.execute (dol)


exit do
end if%>





<%=Rs("message")%>


<%Rs.movenext
loop
Rs.close
set Rs = nothing%>

如此这般而已