股票那几根线什么意思:谁能帮我解决错在哪?ADODB.Recordset 错误 '800a0bb9'

来源:百度文库 编辑:高考问答 时间:2024/03/29 12:38:31
ADODB.Recordset 错误 '800a0bb9'
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/wwwroot/default.asp,行249

源码如下:

<%set rb=server.createobject("adodb.recordset")
sql2="select top 20 idcompany,chrcompanyname from company order by idcompany desc"
rb.open sql2,cnndb1,1,1(此行为第249行)
do while not rb.eof
%>
数据库连接部分代码:
<OBJECT RUNAT=Server ID=cnndb1 SCOPE=Session PROGID="ADODB.Connection"></OBJECT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
SUB Application_OnStart
Application("dns")="provider=Microsoft.Jet.OLEDB.4.0;"&_
"Data Source=e:\freehost\yzhot\web\wwwroot\*****o.mdb;"&_
"Jet OLEDB:Database password=******(此为数库密码)
application("currentusers")=0
END SUB

SUB Session_OnStart
application.lock
application("currentusers")=application("currentusers")+1
application.unlock
cnndb1.Open Application("dns")
sql="insert into temp (userdate) values(date())"
cnndb1.execute(sql)
sql="select max(countid) as num from temp"
set rs2=cnndb1.execute(sql)
if rs2.eof then
session("user_num")=1
else
session("user_num")=rs2("num")
end if
END SUB

楼上两位说的都不正确:

TOP 后面可以跟几个查询的字段的,这个没错误。

楼主的数据库联接字符串也没问题,因为这个数据库可以用相对路径,也可以用绝对路径,但是推荐用相对路径,因为采用相对路径移植性好。

我想是楼主的SQL语句有问题,我看到id和company是两个字段吧,建议你把sql2改为:

sql2="select top 20 id,company,chrcompanyname from company order by idcompany desc"

你试一下吧SQL语句当中的SELECT 参数后面使用1个变量,不要使用两个,

连接数据位:
dim cnndb1
dim connstr
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("****.mdb" )
Set cnndb1= Server.CreateObject("ADODB.Connection")
cnndb1.open connstr

其中****.mdb为你的数据库,
如果你写的没错的话,
那就“sql2”错了,应改为:
sql2="select top 20 * from company order by idcompany desc"

sql2="select top 20 id,company,chrcompanyname from company order by idcompany desc"
你后面那个idcompany 怎么不改?我估计他的idcompany 是一个字段