为什么我不会用这个Command对象呢?

deldelmeme979 2002-06-24 04:45:03
大家好,我在为一段ASP代码而发愁:我想做一个简单的BBS,用户点击了某篇文章后,如果数据库(Sql Server)中没有这篇文章,则显示“文章不存在”,如果有,则数据库中Detail表的Hit字段(也就是点击数)加一。

下面是部分代码,我想用一个Command对象通过运行纯SQL语句来实现点击次数加一(我不想用Recordset来Update),可是一到Command.commandtext那一行就报错。我不知为什么。请大家来帮帮我吧!

<%@ Language=VBScript %>
<html>
<head>

</head>
<body bgcolor="#EFF7FF">
<%
InfoID=Request.QueryString("InfoID")

set cnn=Server.CreateObject("ADODB.connection")
cnn.ConnectionString="dsn=sqldb1;database=db1;uid=sa;pwd=;"

set rs=Server.CreateObject("ADODB.recordset")
set cmd=server.CreateObject("ADODB.command")

sqlcmd1="Select Subject, Message, Author, convert(char(19), PostTime, 120), Hit, Reply, Category from Detail where PostID="&InfoID

cnn.Open
on error resume next
rs.Open sqlcmd1, cnn, 1 '取得主帖数据
rs.MoveFirst

%>
<%
if rs.eof and rs.BOF then '没有主帖数据
%>
该文章<%=Infoid%>不存在
<%
else
'==========此处开始对文章存在进行处理===============
cmd.CommandText="update detail set hit=hit+1 where postid="&InfoID '点击次数加一(从这行开始有错误)
  cmd.ActiveConnection="dsn=sqldb1;database=db1;uid=sa;pwd=;"
  cmd.Execute
response.write"您已经点击了该文章"
'==========此处停止对文章存在进行处理===============
end if
%>
<%
rs.Close
cnn.Close
set rs=nothing
set cmd=nothing
set cnn=nothing
%>
</body>
</html>
...全文
37 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
julyclyde 2002-06-25
  • 打赏
  • 举报
回复
可能是set hit=hit+1 错了
deldelmeme979 2002-06-25
  • 打赏
  • 举报
回复
哦,忘了标出来了:上面运行到cnn.Execute("update detail set hit=hit+1 where postid=5")这一句出错的。
deldelmeme979 2002-06-25
  • 打赏
  • 举报
回复
to julyclyde(争取下次的MVP):
我按照你说的,用Connection对象来代替,可是一到了cnn.Execute()还是出错!你能帮我看一下问题出在哪里吗?谢谢了!我真的挺急的

<body bgcolor="#EFF7FF">
<%
InfoID=Request.QueryString("InfoID")

set cnn=Server.CreateObject("ADODB.connection")
cnn.ConnectionString="driver={sql server};server=192.168.5.72;database=db1;uid=sa;pwd=;"

set rs=Server.CreateObject("ADODB.recordset")

sqlcmd1="Select Subject, Message, Author, convert(char(19), PostTime, 120), Hit, Reply, Category from Detail where PostID="&InfoID
sqlcmd2="select Subject, message, author, convert(char(19), posttime, 120) from Detail where ResponseTo="&InfoID&"order by PostID"

cnn.Open
on error resume next
rs.Open sqlcmd1, cnn, 1 '取得主帖数据
rs.MoveFirst

%>
<%
if rs.eof and rs.BOF then '没有主帖数据
%>
该文章<%=Infoid%>不存在
<%
else
'==========此处开始对文章存在进行处理===============
sqlcmd3="update detail set hit=hit+1 where postid=5" '"&InfoID '点击次数加一
  cnn.Execute("update detail set hit=hit+1 where postid=5")
  response.Write ("viewed")

'==========此处停止对文章存在进行处理===============
end if
%>
<%
rs.Close
cnn.Close
set rs=nothing
set rs2=nothing
set cmd=nothing
set cnn=nothing
%>
</body>


julyclyde 2002-06-24
  • 打赏
  • 举报
回复
你这样的SQL用Connection就可以了,为什么要用Command?
liyunsong2000 2002-06-24
  • 打赏
  • 举报
回复
sqlcmd1="Select Subject, Message, Author, convert(char(19), PostTime, 120), Hit, Reply, Category from Detail where PostID='"&
InfoID "'"

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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