主题:  再次请教

luolanxisi

职务:普通成员
等级:1
金币:0.0
发贴:156
#12002/10/20 0:00:15
对ASP不大熟悉,请大家帮帮忙.
我的想法是在add.asp填好更新内容,然后提交到new.asp显示.当写入第11条数据时就自动删去最早的一条记录.
现在add.asp基本上没问题了,数据也可以写进数据库了,就是不知道new.asp中打开数据库的代码应该怎么写,试了很多次都出错,望各位指点.
以前有一位朋友回答说:
-----------------------------------------------------------
你的sql语句这样写
declare @i int
set @i=(select count(*) from test)
if @i>2
delete from test where id=(select top 1 id from test)
就可以了,完全不必写其他的代码!
-----------------------------------------------------------
我试了很多次也不行啊???不论是按他那种方法也好,我的那种方法也好,
能不能给出完整的new.asp代码,谢谢.



add.asp



Untitled Document






















姓名:
更新内容:





<%
name1=request.form("name")
message=request.form("message")
if name1="" then
response.write "请填写您的姓名,点击这里返回"
response.end
else if message="" then
response.write "请填写更新内容,点击
这里返回"
response.end
else
set conn1=server.createobject("ADODB.connection")
path=server.MapPath("sakurasky.mdb")
conn1.Open"Driver={Microsoft Access Driver (*.mdb)};dbq=" & path
set rs=server.createobject("ADODB.Recordset")
set ob=server.createobject("ADODB.Command")
ob.CommandText="select * from sakurasky"
ob.CommandType=1
set ob.Activeconnection=conn1
rs.Open ob, , 1, 3
Rs.addnew
Rs("name")=name1
Rs("message")=message
Rs.update
Rs.close
set Rs = nothing
conn1.close
set conn1 = nothing
Response.redirect "new.asp"
Response.End
end if
end if
%>


new.asp






语言分类

leftmargin="5" background="b-begin.gif" bgproperties="fixed">
<%
sql="select top 1 id from sakurasky 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 > 10 then

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


exit do
end if%>












<%=Rs("time")%>

<%=Rs("name")%>

更新内容:
<%=Rs("message")%>

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




5D荣誉版主

职务:普通成员
等级:1
金币:10.0
发贴:271
#22002/10/21 8:14:23
将new.asp中间的<%... %>代码换成如下代码试试

set conn = server.createobject("ADODB.connection")
path = server.MapPath("sakurasky.mdb")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & path

sql="select * from sakurasky order by id asc"
set rs=server.CreateObject("adodb.recordset")
rs.Open sql,conn,1,1
while not rs.EOF
    i=i+1
    if i>10 then
        rs.Delete
        exit
    end if
wend
rs.movelast



luolanxisi

职务:普通成员
等级:1
金币:0.0
发贴:156
#32002/10/21 12:33:39
dtmyou在上个帖子中说
引用:
将new.asp中间的<%... %>代码换成如下代码试试

set conn = server.createobject("ADODB.connection")
path = server.MapPath("sakurasky.mdb")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & path

sql="select * from sakurasky order by id asc"
set rs=server.CreateObject("adodb.recordset")
rs.Open sql,conn,1,1
while not rs.EOF
    i=i+1
    if i>10 then
        rs.Delete
        exit
    end if
wend
rs.movelast



是把代码改为这样吗:







游戏分类


<%
set conn = server.createobject("ADODB.connection")
path = server.MapPath("sakurasky.mdb")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & path
sql="select top 1 id from sakurasky 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 > 10 then

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


exit do
end if%>












<%=Rs("time")%>

<%=Rs("name1")%>

更新:
<%=Rs("message")%>

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



显示:
-----------------------------------------------------------------------------------

ADODB.Recordset 错误 '800a0cc1'

项目在所需的名称或序数中未被发现。

/ice/gb/new.asp,行49

-----------------------------------------------------------------------------------

顺便说一下,行49是:
<%=Rs("time")%>



5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:1480
#42002/10/21 12:37:01
检查一下数据库字段是不是time,
是的话把time换掉.



5D荣誉版主

职务:普通成员
等级:1
金币:10.0
发贴:271
#52002/10/21 12:39:29
当然不是了,整个代码如下啊:





语言分类

leftmargin="5" background="b-begin.gif" bgproperties="fixed">
<%
set conn = server.createobject("ADODB.connection")
path = server.MapPath("sakurasky.mdb")
conn.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & path

sql="select * from sakurasky order by id asc"
set rs=server.CreateObject("adodb.recordset")
rs.Open sql,conn,1,1
while not rs.EOF
i=i+1
if i>10 then
rs.Delete
exit
end if
wend
rs.movelast

%>












<%=Rs("time")%>

<%=Rs("name")%>

更新内容:
<%=Rs("message")%>

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






luolanxisi

职务:普通成员
等级:1
金币:0.0
发贴:156
#62002/10/22 17:30:15
谢谢。^-^



5D荣誉版主

职务:普通成员
等级:1
金币:10.0
发贴:271
#72002/10/23 8:49:36
没事,互相帮助而已罗