[ADO错误代码说明]

bohut 2004-12-29 09:11:06
加精
在使用ADO的时候,我们在程序中经常使用
try
{
//
}
catch(_com_error e)
{
MessageBox(e.ErrorMessage());
........
}

来捕获ADO的异常信息,但是
e.ErrorMessage()输出的往往是一些错误编号
例如: IDispatch error #3748
是我们还是不能了解到底是哪方面的操作导致了异常

下面就给出一些ADO中的错误代码和对应的描述信息,希望对大家有所帮助!

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 操作引出一个安全对话头


常量名称
十进制编号
十六进制编号
说明

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 对象来请求对对象的操作。


上面两部分有些内容可能有些重复,第二部分较少的比较详细一些,可以对比着看一下!

...全文
660 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
fei9999 2005-01-10
  • 打赏
  • 举报
回复
好东西
duoli 2005-01-07
  • 打赏
  • 举报
回复
0x0012f130 是什么原因??
RocWay007 2005-01-03
  • 打赏
  • 举报
回复
e.Description();好像可以直接给出错误的内容。
bohut 2004-12-29
  • 打赏
  • 举报
回复
up

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧