ASP操作数据库常见问题集

--------转自经典论坛
大家在作asp程序的时候常常会遇到一些错误提示,经常很费劲的去找原因,所以我倡议大家把平常遇到的错误提示及其解决方法收集起来,让自己和新手好作参考。
希望大家能在遇到错误提示后把你的解决方法和错误提示都粘贴下来,发到论坛上,造福大众,救百姓于水火,呵呵


我先来,如果有错误请指正。
===================================================
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来判断
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值