主题:  请教一个access的错误

gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#12003/10/30 20:01:15
请教“[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 2。”是什么问题?"&tj&"' 是要搜索的关键字
dbpath=Server.MapPath("bh.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
set rstmp=server.createobject("adodb.recordset")
mysql="select id,名字,状态,日期 from search where 名字 like "&tj&"' order by id desc"

编辑历史:[此帖被gation编辑过(编辑时间2003-10-30 20:13:25)]


风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#22003/10/30 20:33:25
mysql="select id,名字,状态,日期 from search where 名字 like '"&tj&"' order by id desc"



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#32003/10/30 20:48:26
不是这个原因 bt=Request("name")
mysql="select id,名字,状态,日期 from search where 名字 like '"&bt&"' order by id desc"
mysql="select id,名字,状态,日期 from search where 名字 like '%"&bt&"%' order by id desc"
这样都是刚才的错误



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#42003/10/30 21:00:34
二楼指出的错误肯定是存在的。这个错误应该在这两行之前产生,估计是数据库连接错误,请给出更详细的信息。



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#52003/10/30 21:11:20
我怀疑是自己的数据库那里出问题,bh.mdb是放在和该页同一目录下 search表也是id ,名字,日前,状态 ,现在错误提示是Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
请高手题点



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#62003/10/30 21:14:27
你没有提供任何有价值的信息,叫别人怎么帮你
至少也要把出错行拿出来吧



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#72003/10/30 21:16:57
下面是代吗
n = Request("name")
Set conn = Server.CreateObject("ADODB.Connection")
dbpath=Server.MapPath("bh.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
set rs=server.CreateObject ("ADODB.Recordset")
rs.CursorType =1
    rs.LockType = 3
sql="select id,名字,状态,日期 from search where 名字 like '%"&n&"%' order by id desc"
rs.open sql,conn,3 错误行
if rs.recordcount>0 then
point=0
do while not rs.eof
show="&rs(‘时间’)&"
rs.movenext
point=point+1
         loop



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#82003/10/30 21:24:44
rs.CursorType =1
    rs.LockType = 3
sql="select id,名字,状态,日期 from search where 名字 like '%"&n&"%' order by id desc" 
rs.open sql,conn,3
换成
Set rs=conn.execute("select id,名字,状态,日期 from search where 名字 like '%"&n&"%' order by id desc")



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#92003/10/30 21:31:07
18行 就是你该的那一行出现这个错误



风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#102003/10/30 21:40:39
我只知道CursorType属性的缺省值为0
当要使用AbsolutePage和PageCount属性时CursorType属性才取值为1



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#112003/10/30 22:18:16
sql="select * from search where 名字 like '%"&n&"%' order by id desc" 后错误为“对象打开时,操作不被允许。“
错误行 rs.open sql,conn 3



风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#122003/10/30 22:21:47
rs.CursorType =1
rs.LockType = 3
sql="select id,名字,状态,日期 from search where 名字 like '%"&n&"%' order by id desc"
rs.open sql,conn,3
=====================
因为你使用了rs.recordcount,所以CursorType不该用缺省值,取值应该没错,不知道是不是你重复定义的属性值,改成下面试试

sql="select id,名字,状态,日期 from search where 名字 like '%"&n&"%' order by id desc"
rs.open sql,conn,1,3

另外我觉得你用rs.recordcount的目的好像就是为了判断有无数据+给个初始值,没有必要吧,下面已经可以判断了,直接dim还简单些



风之翅

职务:普通成员
等级:2
金币:10.0
发贴:540
#132003/10/30 22:24:52
刚发帖就看见你报错了,呵呵
再附上
RecordCount 属性

指示 Recordset 对象中记录的当前数目。

返回值

返回长整型值。

说明

使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。

如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBookmark) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。

Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。



gation

职务:普通成员
等级:2
金币:1.0
发贴:251
#142003/10/30 22:41:48
谢谢楼上的解释 我这个recordcount是从分页显示程序中保留下来的,现在纪录少也就不去用它 还有好像改了错误依旧存在
步知道改成rs.open sql,conn,1,3这个后的作用是什么