100分求教高手:0x80004005 错误问题!!!!

l_walker 2001-07-11 08:09:12
加精
我用asp和access做的一个管理程序,但在下面一段中:
sqlstr="insert into AdminDB(Admin_Name,Real_Name,PWSCode,Kind,CreatDate) values ('"&name&"','"&realname&"','"&password&"',"&power&",#"&indate&"#)"
cn.Execute(sqlstr)
AdminDB是数据表
Kind是数字型
CreatDate日期型
其余是文本型
后面的参数是从上一页面request来的数据,没问题,但在执行时有一下错误:
错误类型:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
我改了好几次都不行,快受不了了,那位朋友帮忙看看,分析一下,谢谢
我试 着改了好几次还是不行,IIS也配置过了,权限也全开了,能访问,但对写入就出现了这个问题,兄弟急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急


谢谢上次回答的朋友!!!
...全文
9919 点赞 收藏 15
写回复
15 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jdxx 2001-07-13
可能两个方面:
1。数据库字段名错误
2。日期格式,建议先把日期去掉再调试
回复
liugys 2001-07-12
look:
asp错误代码
错误代码错误消息和扩展信息
ASP0100 Out of memory(内存溢出)
ASP0101 Unexpected error(函数返回e x c e p t i o n _ n a m e )
ASP0102 Expecting string input(期待字符串输入)
ASP0103 Expecting numeric input(期待数字量输入)
ASP0104 Operating not allowed(操作不允许)
ASP0105 Index out of range(数组下标溢出)
ASP0106 Type Mismatch(数据类型不匹配)
ASP0107 Stack Overflow(处理的数据量超过了允许的范围)
ASP0115 Unexpected error(出现在外部对象中的可捕获的错误e x c e p t i o n _ n a m e,脚本不能继续运行)
ASP0177 S e r v e r.CreateObject Failed(无效的P r o g I D )
ASP0190 Unexpected error(当释放外部对象时,出现的可捕获的错误)
ASP0191 Unexpected error(在外部对象的O n S t a r t P a g e方法中出现的可捕获的错误)
ASP0192 Unexpected error(在外部对象的OnEndPage 方法中出现的可捕获的错误)
ASP0193 OnStartPage Failed(在外部对象的O n S t a r t P a g e方法中出现错误)
ASP0194 OnEndPage Failed(在外部对象的OnEndPage 方法中出现错误)
ASP0240 Script Engine Exception(脚本引擎从o b j e c t _ n a m e抛出异常e x c e p t i o n _ n a m e )
ASP0241 CreateObject Exception(object_name的C r e a t e O b j e c t方法所导致的异常e x c e p t i o n _ n a m e )
ASP0242 Query OnStartPage Interface Exception(查询对象o b j e c t _ n a m e的O n S t a r t P a g e或O n E n d P a g e
方法所导致的异常e x c e p t i o n _ n a m e )

------------------
ADO 错误代码

除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。使用编程语言的错误捕获机制(如 Microsoft? Visual Basic? 中的 On Error 语句)可捕获及处理下列错误。下表将同时显示十进制和十六进制错误代码值。

常量名称         编号       说明
adErrInvalidArgument   3001  0x800A0BB9
应用程序使用的参数其类型错误、超出可接受的范围或者与其他参数冲突。
adErrNoCurrentRecord   3021  0x800A0BCD
BOF 或 EOF 为 True,或者当前记录已经删除。应用程序请求的操作需要当前记录。
adErrIllegalOperation   3219 0x800A0C93
应用程序请求的操作不允许出现在该上下文中
adErrInTransaction 3246 0x800A0CAE
在事务中应用程序无法显式关闭 Connection 对象。
adErrFeatureNotAvailable 3251 0x800A0CB3
提供者不支持应用程序请求的操作。
adErrItemNotFound 3265 0x800A0CC1
ADO 无法在对应于应用程序请求的名称或顺序引用的集合中找到对象。
adErrObjectInCollection 3367 0x800A0D27
无法追加,对象已经在集合中。
adErrObjectNotSet 3420 0x800A0D5C
应用程序引用的对象不再指向有效的对象。
adErrDataConversion 3421 0x800A0D5D
应用程序使用了不符合对当前操作的值类型。
adErrObjectClosed 3704 0x800A0E78
如果对象关闭,则不允许应用程序请求的操作。
adErrObjectOpen 3705 0x800A0E79
如果对象打开,则不允许应用程序请求的操作。
adErrProviderNotFound 3706 0x800A0E7A
ADO 找不到指定的提供者。
adErrBoundToCommand 3707 0x800A0E7B
应用程序无法用 Command 对象将 Recordset 对象的 ActiveConnection 属性更改为它的来源数据。
adErrInvalidParamInfo 3708 0x800A0E7C
应用程序错误地定义了 Parameter 对象。
adErrInvalidConnection 3709 0x800A0E7D
应用程序通过引用关闭或无效的 Connection 对象来请求对对象的操作。

-------------------------
VBScript 错误信息
--------------------------------------------------------------------------------


错误代码 信息
5 无效的过程调用或参数
6 溢出
7 内存不够
9 下标越界
10 数组长度固定或临时锁定
11 被零除
13 类型不匹配
14 字符串空间溢出
28 堆栈空间溢出
35 Sub 或 Function 未定义
48 加载 DLL 时出错
51 内部错误
53 文件未找到
57 设备 I/O 错误
58 文件已存在
61 磁盘已满
67 文件太多
70 没有权限
75 路径/文件访问错误
76 路径未找到
91 未设置对象变量或 With 块变量
92 未初始化 For 循环
94 无效的 Null 使用
322 无法创建必要的临时文件
424 要求使用对象
429 ActiveX 部件无法创建对象
430 类不支持 Automation
432 Automation 操作过程中,未找到文件名或类名
438 对象不支持此属性或方法
440 Automation 错误
445 对象不支持此操作
446 对象不支持命名的参数
447 对象不支持当前区域设置
448 未找到命名参数
449 此参数必选
450 参数个数错误或无效的属性赋值
451 对象不是集合
453 未找到指定的 DLL 函数
455 代码资源锁定错误
457 此键已和集合中的元素关联
458 VBScript 中不支持使用 Automation 类型的变量
500 变量未定义
501 非法赋值
502 用此对象进行脚本编程会出错
503 对象不能安全初始化
1001 内存不够
1002 语法错误
1003 缺少“:”
1004 缺少“;”
1005 缺少“(”
1006 缺少“)”
1007 缺少“]”
1008 缺少“{”
1009 缺少“}”
1010 缺少标识符
1011 缺少“=”
1012 缺少“If”
1013 缺少“To”
1014 缺少“End”
1015 缺少“Function”
1016 缺少“Sub”
1017 缺少“Then”
1018 缺少“Wend”
1019 缺少“Loop”
1020 缺少“Next”
1021 缺少“Case”
1022 缺少“Select”
1023 缺少表达式
1024 缺少语句
1025 语句未结束
1026 缺少整型常数
1027 缺少“While”或“Until”
1028 缺少“While”、“Until”或语句结尾
1029 局部变量或参数过多
1030 标识符过长
1031 无效的编号
1032 无效的字符
1033 未终止字符串常数
1034 未终止注释
1035 嵌套的注释
1037 “Me”关键字使用无效
1038 “Loop”缺少“Do”
1039 无效的“Exit”语句
1040 无效的“For”循环控制变量
1041 名称被重定义
1042 必须是行中的第一个语句
1043 无法为非 ByVal 参数赋值
1044 调用 Sub 时不能使用括号
1045 缺少字母常数
1046 缺少“In”
32766 True
32767 False
32811 未找到元素
回复
tripofdream 2001-07-12
这些内容在MSDN中都有
回复
adonwjw 2001-07-12
提问:
那么以下错误类型是什么意思
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

The request properties can not be supported by this ODBC Driver
回复
l_walker 2001-07-12
谢谢各位的回答,下次加分,有谁能提供ASP出错信息的详细资料?
回复
11830 2001-07-12
问题解决了吗?
回复
11830 2001-07-12
ASP中常见的错误80004005信息和解决办法
错误80004005信息处理方法

错误信息(错误信息我不用翻译成中文了把,呵呵,大家谅解)
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need permission to view its data.
原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)
检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use.
原因:
多人使用时数据库被锁定。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default
driver specified.
原因:
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量 ,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)
<%= "'auth_user' is " & request.servervariables("auth_user")%>
<P>
<%= "'auth_type' is " & request.servervariables("auth_type")%>
<P>
<%= "connection string is " & session("your_connectionstring")%>
<P>
还有一个原因就是你在你的ConnectString中加入了多余的空格,例如
DSN = MyDSN; Database = Pubs;
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。

还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。
最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ??
原因:
这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。
如果ODBC的版本不一致的话,就会发生该错误。
解决办法是安装最新版本的MDAC

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open
registry key 'DriverId'.
原因:
这个错误发生在爱从注册表中读取数值的时候。 使用regedit32.exe检查你的注册表的权限。
你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。 该程序到这找:http://www.sysinternals.com

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).
原因:
两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,
这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。
错误原因是:
当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,
另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。
这样它就不允许你访问它上面的资源,导致错误。

两个解决办法:
1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)
2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC
Microsoft SQL Driver] Logon Failed()
原因:
该错误是由SQL Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,
也可能是在NT中没有SQL影射帐号造成的。

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。
因为DSN中没有保存用户名和密码。
检查NT是否给SQL映射了帐号。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:
Not defined as a valid user of a trusted SQL Server connection.
原因:
原因同上。
试试这个办法:在SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII
133]/Security Options/Standard.
如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file.
原因:
也许是没有正确的权限生成Access数据库的锁定文件(.ldb)
默认时,该文件和你的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeShareDenyWrite '8

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] '(unknown)' isn't a valid
path. Make sure that the path name is spelled correctly and that you are
connected to the server on which the file resides.
原因:
路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。

错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in
it exceed the limit of 16 tables.

原因:
查询太复杂了,对查询有限制。

错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check
your network document
原因:
当装有SQL Server的机器改名的时候。但是DSN还使用了原来的机器名。


回复
tripofdream 2001-07-12
出错信息
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'
The request properties can not be supported by this ODBC Driver.
/<Web Name>/_ScriptLibrary/Recordset.ASP, line 466


原因
When the Recordset DTC has the cursor location property set to "2 - Use Server Side Cursors" (the default value), it cannot return multiple recordsets.
当the Recordset DTC的游标设为2(服务器端游标,默认值)时,无法返回多个记录集



RESOLUTION
Under the Properties dialog box for the Recordset DTC, go to the Advanced tab and change the cursor location from "2 - Use Server-Side Cursor" to "3 - Use Client-Side Cursor."


回复
liugys 2001-07-12
to adonwjw:数据库字段长度不够,检查数据库吧
回复
freezwy 2001-07-12
这种问题有很多种错误。
根据你的情况,估计是:
1.数据库打开错误
2.数据表中字段不存在或者超过指定长度
3.不允许为空的字段,你传递的却是空值
你先response.write sql看看在说。
回复
tripofdream 2001-07-12
1.0x80004005的错误有很多种,在MSDN中用0x80004005搜索会有几十个
2.数据库权限--这包括IIS权限和文件系统权限
回复
adonwjw 2001-07-11
这个问题我昨天刚碰到
就是数据库权限的问题
把数据库的权限设置为可写或者把数据库所在的文件夹设置为可写就没有问题了
回复
liugys 2001-07-11
对了,你是ASP页面第一行加上<%response.buffer=false%>试试,这样你就可以看到详细出错信息了。
回复
rizijky 2001-07-11
我曾经在安装PWS时Transaction Server核心组件安装失败,和你的错误差不多,
0x80004005,不知道对你是否有启发,其他的我也不懂
回复
liugys 2001-07-11
hehe,看看你的数据库字段长度够不够!
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2001-07-11 08:09
社区公告
暂无公告