到底有什么错?非常急!

stellaxyq 2000-07-23 12:14:00
我正在做一个聊天室,用的是FLUSH方法刷新,也就是说,在APPLICATION中维护一个可写且可以看到别人写的RECORDSET,然后用一个FRAME检查RECORDSET中有无新数据,有则用RESPONSE.FLUSH输出,无则在循环

但下面这段代码老是出错,说ADODB.Recordset出错!
是什么原因呢?

SUB Application_OnStart
Set DataConn = server.CreateObject ("ADODB.Connection")
DataConn.Open("Driver={SQL Server};Server=STELLA;UID=CHATUSER;password=CHATUSER;Database=MYCHAT")
Set cmd=server.CreateObject ("ADODB.Command")
cmd.ActiveConnection =DataConn
cmd.CommandText ="SELECT * FROM campus ORDER BY ID"
Set rs=server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenDynamic
rs.LockType=adLockPessimistic
Set rs=cmd.Execute
Set Application("rscampus")=rs
END SUB
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stellaxyq 2000-07-23
  • 打赏
  • 举报
回复
用客户端游标可行吗?
我做的是聊天室,这个记录集每秒钟都在改变!

可以告诉我我的代码有什么错吗?我用了很多种方法好象还是不可以
PS 我用的OS 是WINDOW2000 professional 加 IIS 5.0
leslielu 2000-07-23
  • 打赏
  • 举报
回复
hehe, 如果你要改 LockType 就要用我告诉你的2.试试吧.
要改adUseClient 为数值,好像ASP不认的.
stellaxyq 2000-07-23
  • 打赏
  • 举报
回复
只要去掉LOCKType就行,这个我已经知道了,但我现在必须用别的LOCK,而不是缺省的,不然我后面的ADDNEW都不能用,就没办法刷新了

另一回复看不懂,可以解释一下吗?
coolyangbo 2000-07-23
  • 打赏
  • 举报
回复
SUB Application_OnStart
Set DataConn = server.CreateObject ("ADODB.Connection")
DataConn.Open("Driver={SQL Server};Server=STELLA;UID=CHATUSER;password=CHATUSER;Database=MYCHAT")
Set cmd=server.CreateObject ("ADODB.Command")
cmd.ActiveConnection =DataConn
cmd.CommandText ="SELECT * FROM campus ORDER BY ID"
Set rs=server.CreateObject("ADODB.Recordset")
rs.Open "select * from tiku where id=" & ID, Sql_con, 1,3, adCmdText
Set Application("rscampus")=rs
END SUB
leslielu 2000-07-23
  • 打赏
  • 举报
回复
1. 把你的 rs.CursorType=adOpenDynamic
rs.LockType=adLockPessimistic
去掉试试.
2. 如果不行, 设置 DataConn.Provider= "SQLOLEDB"
DataConn.CursorLoaction = adUseClient
在你OPEN之前.
3. 如果还不行,把你的出错信息告诉我.
leslielu 2000-07-23
  • 打赏
  • 举报
回复
对了,你要这样写

DataConn.Constring="Server=STELLA;UID=CHATUSER;password=CHATUSER;Database=MYCHAT"
DataConn.Provider= "SQLOLEDB"
DataConn.Open
因为你的 Driver又一次指定为默认 Provider. 所以你一点用都没有.
你可以用Response.Write输出Provider看一下是不是你指定的.
stellaxyq 2000-07-23
  • 打赏
  • 举报
回复
一点用都没有

DODB.Recordset (0x800A0BB9)
/mychatroom/global.asa, 第 59 行

SUB Application_OnStart
Set DataConn = server.CreateObject ("ADODB.Connection")
DataConn.Provider= "SQLOLEDB"
DataConn.Open("Driver={SQL Server};Server=STELLA;UID=CHATUSER;password=CHATUSER;Database=MYCHAT")
Set cmd=server.CreateObject ("ADODB.Command")
cmd.ActiveConnection =DataConn
cmd.CommandText ="SELECT * FROM campus ORDER BY ID"
Set rs=server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenDynamic
rs.LockType=adLockPessimistic
Set rs=cmd.Execute
Set Application("rscampus")=rs
END SUB

59行就是改LOCKTYPE的那一行
leslielu 2000-07-23
  • 打赏
  • 举报
回复
不用也可以,只要你的数据库和IIS在一台服务器上,总之,你改不了LockType的原因在于你的Provider.

28,390

社区成员

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

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