ID值为32768及以上时出现Overflow错误提示怎么解决?

我模仿一套现有的程序设计了一个新的程序,其实,基本上只是更换数据库、表、字段的名称而已。但是新程序的数据库中有一个表的对象有4万多,导致出现问题:
当“edit.asp?id=***”中ID值小于32768时一切正常,可是当ID值大于或等于32768时,页面会出现下面提示:

Microsoft JET Database Engine error '80040e57'
Overflow
edit.asp, line 15

edit.asp文件开头部分如下:

<!--#include file="conn.asp"-->
<%
if session("admin")="" then
response.redirect "index.asp"
end if

lid=request("id")
if isnumeric(lid)=false then
response.write "<script>alert('参数错误,关闭窗口!');window.close();</script>"
response.end
end if

sql="select * from data where id=cint('"&lid&"')"
set rs=server.createobject("adodb.recordset")
rs.open sql,connstr,1,1
if not rs.eof then

if HtmlEncode(request.form("title"))<>"" then
sql="select * from joke where id=cint('"&lid&"')"
set rs=server.createobject("adodb.recordset")
rs.open sql,connstr,3,2

rs("title")=HtmlEncode(request.form("title"))
rs("content")=HtmlEncode(request.form("content"))

rs.update
response.redirect "ok.asp"
end if
end if
%>

补充:对具体对象进行编辑(即访问edit.asp?id=***页面)时出现上述问题,但查看该对象时又没有出现上述问题。

请教各位高手如何解决?我是菜鸟,请尽量说简单、直接些,不要说那些理论,我不懂,嘿嘿~~
补充:(一)conn.asp文件
<%
dim db,conn,connstr
db="数据库名**.asp"
set Conn = server.CreateObject("ADODB.Connection")
connstr="provider=microsoft.jet.oledb.4.0;data source="& server.MapPath(""&db&"")
conn.Open connstr

Function HtmlEncode(Content)
Content = Replace(Content, ">", ">")
Content = Replace(Content, "<", "<")
Content = Replace(Content, " ", " ")
Content = Replace(Content, "'", "")
Content = Replace(Content, CHR(10),"<BR>")
HtmlEncode = content
End Function
%>

(二)不好意思,还有个小问题:
我通过edit.asp重新编辑对象时(编辑框为“<input type="text"”输入框形式),发现如果原来就有“<br>”,不保存的话就能实现换行;但什么都不修改而保存,或者另外输入“<br>”的,页面却不会换行,而是仍然显示<br>标记。怎么解决呢?(这个问题如果解决了,我再追加5分。)
最新回答
口吻生花

2024-11-29 07:07:25

sql语句有问题啊。

sql="select * from data where id=cint('"&lid&"')"
改成
sql="select * from data where id="&lid

其它的sql语句也是一样

cint 好像只能操作在 -32767 ~ 32768 之间。。