我要疯了!
<%
classid=Request.QueryString("classid")
%>
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("01jlzd.mdb")
Set rs2 = Server.CreateObject("ADODB.Recordset")
sql2 ="Select * From jlzd where ks="&classid
rs2.open sql2,Conn,1,1
do while not rs2.eof
%>
<a href='disp.asp?id=<%=rs2("id")%>' target="_blank"><%=rs2("名称")%></a>
<%
RS2.MoveNext
Loop
rs2.close
%>
总是提示:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
/class.asp,行 16
问题点数:100、回复次数:11Top
1 楼cncca(来个可乐 9_9)回复于 2005-06-01 08:46:39 得分 0
数据连接换成下面的试:
dim conn
dim connstr
dim db
db="data.mdb"
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(""&db&"")
conn.Open connstr
Top
2 楼baikaishui_0825(baikaishui)回复于 2005-06-01 08:55:13 得分 0
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("01jlzd.mdb")Top
3 楼mymyal123(风之森)回复于 2005-06-01 09:11:56 得分 0
Microsoft.Jet.OLEDB.4.0Top
4 楼mynamelj(风之羽翼)回复于 2005-06-01 09:17:18 得分 0
如果你要用ODBC驱动的话,要设置数据源才行,否则换成:OLEDB
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("01jlzd.mdb")
Top
5 楼NewJacket(换个马甲穿穿)回复于 2005-06-01 09:18:57 得分 0
也许重起服务器就好了?Top
6 楼coolwindkaka(寒の风)回复于 2005-06-01 09:20:56 得分 0
我以前也碰到过,拿到其他的机器上测试就没问题了,你试下到其他机器测试一下看Top
7 楼jekexys2004(浪傲)回复于 2005-06-01 09:21:53 得分 50
你sql语句应该这样写:
sql2 ="Select * From jlzd where ks='"& classid &"'"Top
8 楼lenmore(嘉元)回复于 2005-06-01 09:28:22 得分 0
rs2.open sql2,Conn,1,1
改成
rs2.open sql2,Conn,3,1
试试……Top
9 楼up1002(涨不停)回复于 2005-06-01 09:31:27 得分 50
classid=Request.QueryString("classid")
如果QueryString中没有传classid参数的话,你的SQL语句将变成:
Select * From jlzd where ks=
这就会出现 ODBC驱动程序不支持所需的属性 的错误了。
如果你的classid是字符型的,可以按照楼上 jekexys2004(浪傲) 的方法,
如果是数字型的,可以把 classid=Request.QueryString("classid") 这句改为:
if isnumeric(Request.QueryString("classid")) then
classid=CInt(Request.QueryString("classid"))
else
classid=0
end if
如果你的 Request.QueryString("classid") 有可能非常大,大于32768的话,
应该把上面一段中的CInt()改为CLng()
Top
10 楼carbonic(燃烧吧!胸毛)回复于 2005-06-01 09:33:24 得分 0
看看数据源那里的配置是否正确,还有你的权限是否达到要求,不过这个可能性比较小。Top
11 楼TSD(智之选,商欲达--智商购物系统zhishop.com)回复于 2005-06-01 09:34:40 得分 0
classid这个变量是否正确?和字段的类型是否正确Top




