日期:2014-05-17  浏览次数:20923 次

高手帮忙过来看看,为什么"ODBC 驱动程序不支持所需的属性"?
数据库连接文件 conn.asp
VBScript code



<%
Dim Conn,Connstr


Sub OpenDb()
    Set Conn = Server.CreateObject("ADODB.Connection")
         Connstr = "driver={SQL Server};server=127.0.0.1;uid=xx;database=xx;pwd=xx"
    Conn.Open Connstr
End Sub

%>




页面

VBScript code

<!--#include file="../include/conn.asp"-->
<%


OpenDb()
set rs =Server.CreateObject("Adodb.Recordset")
sql="select * from User where UserAccount='"&userid&"'"
rs.open sql,conn,1,1  这是第8行就是报错的这行
if not rs.eof then
Response.redirect "reg.asp?w=1&u="&userid
response.end
end if
if len(userid)<3 or len(userid)>20 then
Response.redirect "reg.asp?w=2&u="&userid
response.end
end if
rs.close
CloseDb()

 %>





报错

Microsoft OLE DB Provider for ODBC Drivers '80040e21' 

ODBC 驱动程序不支持所需的属性。 

\user\userregs.asp, line 8

在线等 求帮忙看看 谢谢!!!

------解决方案--------------------
sql="select * from User where UserAccount='"&userid&"'"
有没有 User表,有没有UserAccount字段,UserAccount字段是否是文本属性,userid是否有值
如果以上都确定没问题,那么把'"&userid&"'"改成 '" & userid & "'",加个空格看看
------解决方案--------------------
sql="select * from User where UserAccount='"&userid&"'"
response.write sql
response.end


看看 打印sql 出来是什么
------解决方案--------------------
如果有大段代码的网页出错,但一时找不出哪里出错时,可用部分注释的方式快速找到原因,
1,是否是数据库连接出错?
只运行OpenDb(),不运行任何东西看一下
2,是否是执行sql 语句?
页面输出 sql 语句,然后直接在相应的数据库里直接执行试一下。
有可能你输出sql 语句看一看就明白了,比如没有传到参,或者语句拼接错误,等等。
如果sql形式上没错,执行的时候也可能有别的运行时错误,比如外健约束的删除,或者违反约束的插入等。


3,其它错误,自己分析。

------解决方案--------------------
试下 set rs = conn.execute("select * from User where UserAccount='"&userid&"'")

如果这个能运行

rs.open sql,conn,1,1 无法运行,那应该是连接数据库的驱动问题了

connectionsStrings.com,去这里看看吧,按你的连接字符串看,你用的是mssql2000?
------解决方案--------------------
<%
Dim Conn,Connstr
Sub OpenDb()
Set Conn = Server.CreateObject("ADODB.Connection")
Connstr = "driver={SQL Server};server=127.0.0.1;uid=xx;database=xx;pwd=xx"
Conn.Open Connstr
Set OpenDb = Conn
End Sub

Conn=OpenDb()
……
……
%>

这样试试