ASP种种错误提示解决方案

网络整理 - 08-31
Microsoft VBScript 编译器错误 错误 '800a03f6'  
ODBC 驱动程序不支持所需的属性。  
------------------------------------------- 
原因:可能是因为没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误。也有可能是sql所要打开的表已经被独占打开。 
解决方法:检查sql语句里出现的每个字段名,和每个关键字 


====================================================Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'  
机器 'HDZC-3JQSKBWO02' 上的用户 'Admin' 以独占方式的锁定数据表'order_detail'。  
------------------------------------------------------------------- 
原因:sql所需的表被access以表设计形式打开着 
解决方法:关闭表设计 


==================================================== 
Microsoft VBScript 编译器错误 错误 '800a03f6'  
在对应所需名称或序数的集合中,未找到项目。  
------------------------------------------------ 
原因:没有sql语句里出现的字段名,一般为字段名或sql关键字书写错误 
解决方法:检查sql语句里出现的每个字段名 


==================================================== 
ADODB.Recordset 错误 '800a0e78'  

对象关闭时,不允许操作。  
------------------------------------- 
原因:在rs.open sql,conn,3,3语句之前使用了rs.close关闭了rs对象 
解决方法:去掉之前的rs.close 


==================================================== 
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14'  

[Microsoft][ODBC Microsoft Access Driver] 语法错误 (操作符丢失) 在查询表达式 'oid form classtree where oid = 25' 中。  
-------------------------------------------------------------------------------- 
原因:在sql语句中存在非法书写的英文关键字或子段错误 
解决方法:把sql语句打出来,然后逐个单词对照,查找出书写的错误 
----------------------- 
操作要求一个可更新的查询 
答:看看库文件是不是只读了。 
答2:经过排序(order by) 的记录集(rs)不允许有更新操作(rs.update) 
--------------- 
3219 操作在该内容中不被允许 
答3:数据库字段属性是否设置为允许空值插入。 
----------------------------------- 
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 对象来请求对对象的操作。  
-------------------------------- 
ADODB.Field 错误 '80020009' BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。  
解决如下:这个错误是因SELECT、DELETE的记录不存在,或者库中没有记录所引起的,所以检查SQL语句,SELECT、DELETE的条件是否正确,还有在DELETE前最好SELECT一个记录或者用On Error Resume Next.......On Error Goto 0来处理。如果是因为库中没记录,只要加个判断If objRecordSet.Eof And objRecordSet.Bof Then就可以了,因为打开RecordSet时,指针默认是指在最面的,所以可以只用If objRecordSet.Eof Then来判断