Gadgetzq
知名人士
知名人士
  • 铜币0枚
  • 威望0点
  • 贡献值1点
  • 社区居民
阅读:5438回复:5

遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?

楼主#
更多 发布于:2005-01-09 20:48
老师让做个同学录系统,过几天就交了。今天整了一份,可是在添加,修改和删除的时候,总是显示
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
/2/delnews.asp, 第 9 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

网页:
GET /2/delnews.asp

时间:
2005年1月9日, 20:40:24
————————————————————————————————————————————————————————————
源代码如下,求哪位达人帮我看看毛病出在哪,谢谢了。

<%
IID=request("id")
dim name,pwd,email,person
dim sql
dim rs
set rs=server.createobject("adodb.recordset")
conn = "DBQ=" + server.mappath("mydb.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
sql = "DELETE FROM mytable WHERE id="+IID
rs.Open sql,conn,1,1                            <--------就是这句有问题,其他的也是这行出问题
set rs=nothing
response.write "<script language=JavaScript>" & chr(13) & "alert('同学信息已经删除!');"&"window.location.href = 'index.asp'"&" </script>"
%>

忘了说了:我的系统是WINXP+SP2,会不会和系统有关系?

--------------------
--------------------
   人生就像一场戏,只是这场戏没有经过彩排,天天都是现场直播!                      
[ 2005-01-09 20:50:49 Gadgetzq 修改 ]
-------------------- [color=#ee01ff] 请注意签名不要过长[/color]
松柏
论坛版主
论坛版主
  • 铜币371枚
  • 威望39点
  • 贡献值0点
  • 社区居民
1C#
发布于:2005-01-10 18:47
Re:遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?
delete 语句不能用 rs.open 来运行,要用 conn.execute 来运行 -------------------- 我就是我,松柏!
日志:http://songbai.blog.wait4c.com/
[color=#0000FF]馋嘴蜗牛[/color] 我的博客:[url]http://osnaile.osdn.cn/[/url]
灭绝师太
知名人士
知名人士
  • 铜币0枚
  • 威望0点
  • 贡献值0点
2C#
发布于:2005-01-10 23:47
Re:遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?
Delete好像可以用rs.Open方法执行。我已在本机测试过(XPsp1 IIS5.1),但不知道不同环境会如何。
另外你的代码在我的机器上运行就不会出错,记录删掉了。
所以我觉得是你SQL的问题,也就是数据库字段类型不匹配的问题。
试试看:
1。先改为rs.Open sql,conn,1,3;  改为rs.Open sql,conn,1,3错误提示会更清楚些。
2。看看你的数据库id字段是数字型还是文本性?如果是文本型"........id='" + IID + "'"

--------------------
因我的生命就有若微尘,躺卧于街头或结伴同行,也不介意做个自由人,无必须要紧。
[ 2005-01-11 00:01:25 灭绝师太 修改 ]
用心操纵光影,将会得到拍摄灵魂的力量。 [img]http://www.wait4c.com/bbs/userfiles/6164/2007091421160765786.jpg[/img]
Gadgetzq
知名人士
知名人士
  • 铜币0枚
  • 威望0点
  • 贡献值1点
  • 社区居民
3C#
发布于:2005-01-11 19:42
Re:遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?
感谢二位达人的帮助,可是我按照你们的方法去做,还是不行,我觉得可能是系统的事。 -------------------- --------------------
人生就像一场戏,只是这场戏没有经过彩排,天天都是现场直播!                      
-------------------- [color=#ee01ff] 请注意签名不要过长[/color]
松柏
论坛版主
论坛版主
  • 铜币371枚
  • 威望39点
  • 贡献值0点
  • 社区居民
4C#
发布于:2005-01-11 21:45
Re:遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?
你看看你的数据库文件有没有 everyone 可写或者 IUSR_机器名 可写的权限。
运行 SQL 语句还是建议用 Execute 来运行,这样看着清晰一些。 -------------------- 我就是我,松柏!
日志:http://songbai.blog.wait4c.com/
[color=#0000FF]馋嘴蜗牛[/color] 我的博客:[url]http://osnaile.osdn.cn/[/url]
lijiannan_1981
著名写手
著名写手
  • 铜币15枚
  • 威望0点
  • 贡献值0点
5C#
发布于:2005-01-12 14:28
Re:遇到显示Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)的情况怎么办?
看看分区属性的“安全”选项
如果你的磁盘分区是ntfs,那么你将整个分区的权限改为everyone
对数据库操作如果代码没有问题
那最大的可能就是权限问题呵呵
不知道说对没
无。
游客

返回顶部