上海出租车价格 2016:ASP和MSSQL高手请进,高分请教问题!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 07:15:50
数据库是MSSQL,系统是WIN2003,分区是NTFS
错误提示内容:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

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

/Member/MyFriends.asp,行 165

159-165行的内容是:
<%
dim PerPage
set rs_c=server.createobject("adodb.recordset")
' sql_c="select f_id,f_username,f_content,f_regtime from t_club_board where f_club_id="&rs_a("f_id")&" order by f_regtime desc"
mSql = "Select f_id,f_username From my_friend where F_flag="&M_flag&" and F_userid="&mUserID&" order by f_id desc"
'Set rs_c = conn.Execute(mSql)
rs_c.open msql,conn,1,1

以前问过这个问题,一直没有得到解决,有人说是连接数据库出错,我的CONN.ASP的内容是:
<%
dim conn
set conn=server.createobject("adodb.connection")
conn.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX"
Function CloseDatabase()
conn.Close
Set conn=Nothing
End Function
%>

希望大家能帮我找出错误所在
在查询分析器里查到:
服务器: 消息 208,级别 16,状态 1,行 1
对象名 'My_Firend' 无效。
但我数据库里有My_Firend这个表啊?

首先执行一下CONN.asp文件,看链接数据库是否有问题,
然后设断点调试!!

既然在查询分析器查到有错误了,就说明是SQL语句的问题了。
会不是是表名跟My_Firend不一样呢,仔细看看是不是打字的时候弄错了。

报这样的错,肯定不是连接的问题了。仔细查看SQL语句。

1、My_Firend这个表存在,查询分析器中仍存在 对象名 'My_Firend' 无效。

这一般是因为你所使用的SQL Server用户并非'My_Firend'的Owner(拥有者),也就是说'My_Firend'这个表的创建者不是你连接查询分析器使用的用户名,所以提示 “ 对象名 'My_Firend' 无效。 ”

2、(如果1的问题确实存在的话)继续下边……

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'
ODBC 驱动程序不支持所需的属性。
/Member/MyFriends.asp,行 165

这个错误的解决办法是conn.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX"
首先把conn.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX"
的uid改成你能连接SQL Server的用户名,以及其密码;
之后把
mSql = "Select f_id,f_username From my_friend where F_flag="&M_flag&" and F_userid="&mUserID&" order by f_id desc"
中的 “my_friend”改成"这个表的owner.my_friend"。

是否ok?

我以前出过类似的错误,最终原因是其中的一个值为null
你检测以下M_flag和mUserID里边的内容是否是数字,还是null

我给分析一下你的程序:

从错误提示来看是ODBC连接错误。

但是从你的程序看。没有什么错误。

根据我的经验来说:你一定是你的两个表不在同一个数据库文件中。
比如说。你的My_friend 在别的数据库中。

而你的conn.asp文件连接中的数据
conn.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX"

就是说My_friend 不在你的database=XXX这个数据库中。

你可以再做一个conn

建议你这样做。

###########
<%
dim conn
dim conn2
set conn=server.createobject("adodb.connection")
conn.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX"

set conn2=server.createobject("adodb.connection")
conn2.open "driver={SQL Server};server=127.0.0.1;uid=XXX;pwd=XXX;database=XXX" //是你My_friend的在的数据库名
Function CloseDatabase()
conn.Close
Set conn=Nothing
conn2.close
set conn2=nothing
End Function
%>

#############
然后你的程序中这样用:

set rs_c=server.createobject("adodb.recordset")

mSql = "Select f_id,f_username From my_friend where F_flag="&M_flag&" and F_userid="&mUserID&" order by f_id desc"

rs_c.open msql,conn2,1,1

这样就可以解决问题了。