除了在 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 对象来请求对对象的操作。
继续加:
错误代码及说明
3707 应用程序不能改变Recordset对象的ActiveComnection属性,以Command对象作为它的源
3732 不能完成动作
3748 不能改变连接
3220 不能改变提供者
3724 不能转换值不能创建资源
3747 类别没有设置所以动作不能执行
3726 这一行中不存在指定的列
3421 对于当前的应用程序,应用程序使用了错误类型的值
3721 数据超出给定的数据类型的范围
3738 不能删除资源,这超出了允许范围
3750 不能设置Deny权限,因为提供者不支持
3751 提供者不支持请求的Deny类型
3251 提供者不支持该应用程序请求的操作
3749 Fields集合的Dpdate方法失败
3219 在此环境中不允许应用程序请求的操作
3719 因为违背数据的完整性,操作失败
3246 在事务中,应用程序不能显式地关闭Connection对象
3001 应用程序使用的参数类型错误,可能超出范围或与其他类型冲突
3709 应用程序请求对一个对象的操作时使用了一个引用,而该引用指向了一个关闭的或无效的Connection对象
3708 应用程序不适当地定义了一个Parameter对象
3714 事务无效
3729 提供的URL无效
3265 ADO在集合中没发现对象
3021 BOF和EOF中一个为True,或者当前记录已被删,而应用程序的请求操作需要当前记录
3715 操作不在执行过程中
3710 操作不能重新执行
3704 如果对象已关闭,不允许应用程序请求的操作
3367 对象已在集合中,不能追加
3420 由应用程序引用的对象不再指向有效的对象
3705 如果对象已打开,不允许应用程序请求的操作
3002 当打开请求的文件时,发生错误
3712 操作被取消
3734 因为服务器得不到足够的空间完成操作,操作失败
3720 因为用户没有足够的权限完成操作,操作失败
3742 设置这个属性造成和其他属性冲突
3739 对于选择的列,这个属性无效
3740 给属性提供了一个无效的选择
3741 给属性提供了一个无效的值
3743 不是所有的属性都能被设置
3744 属性没有被设置
3745 属性不能被设置
3746 属性不被支持
3000 提供者执行请求的动作失败
3706 ADO不能找到指定的提供者
3003 读指定的文件时出错
3731 资源已经存在
3730 资源被锁定
3735 资源超出范围
3722 动作违背了模式
3723 表达式包含不匹配的符号
3713 操作仍然在连接中
3711 操作仍然在执行
3728 没有查看目录树的权限
3736 命令不可用
3716 在这种情况下运行不安全
3727 URL不存在
3737 在命名的行中的URL不存在
3733 文件版本信息没找到
3004 写文件时有错误
3717 操作引出一个安全对话
3718 操作引出一个安全对话头
扩展的ADO错误及其说明
-2147483647 未实现
-2147483646 内存不足
-2147483645 一个或多个参数无效
-2147483644 不支持这样的接口
-2147483643 无效指针
-2147483642 无效句柄
-2147483641 操作终止
-2147483640 不确定的错误
-2147483639 一般访问拒绝错误
-2147483638 完成操作所必需的数据不再可用
-2147467263 未实现
-2147467262 不支持这样的接口
-2147467261 无效指针
-2147467260 操作终止
-2147467259 不确定的错误
-2147467258 线程本地存储失败
-2147467257 获取共享的内存分配程序失败
-2147467256 获取内存分配程序失败
-2147467255 不能初始化类的高速缓存
-2147467254 不能初始化RPC服务
-2147467253 不能设置线程本地存储通道控制
-2147467252 不能分配线程本地存储通道控制
-2147467251 用户提供的内存分配程序不可接受
-2147467250 OLE服务互斥量已存在
-2147467249 OLE服务文件映射已存在
-2149467248 不能映射OLE服务的文件视图
-2147467247 试图启动OLE服务失败
-2147467246 在单线程模型中试图再一次调用CoInitialize
-2147467245 需要一个远程激活,但是不允许
-2147467244 需要一个远程激活,但是提供的服务器名称无效
-2147467243 类运行配置的安全id与调用者不同
-2147467242 使用OLE1服务所需的DDE窗口被禁止
-2147467241 RunAs指定的必须是域名\用户名或只是用户名
-2147467240 服务进程不能启动,可能路径名不正确
-2147467239 当配置标识时服务进程不能启动,路径名可能不正确或无效
-2147467238 由于配置标识不正