日期:2014-05-18 浏览次数:20792 次
多步OLE DB操作产生错误。如果可能,请检查每个OLE DB 状态值。没有工作被完成 编辑:Admin 来源: 更新:2007-10-28 点击:747 【字体:小 大】 -------------------------------------------- 数据库采用MSSQL,在添加新记录到数据库里时,出错提示:“Microsoft OLE DB Provider for SQL Server错误80040e21;多步OLE DB操作产生错误。如果可能,请检查每个OLE DB状态值。没有工作被完成。/ff/cai/cjdetail.asp,行 199”。 引起这个问题的原因简单的说就是数据库的字段类型不匹配或者字符个数超出了数据库的字段的最大限制个数。例如自动编号字段的就不应该指定值;限制50个字符的字段你就不应该提交多于50个字符的字符串。 80040e21 -- 插入或更新时出现 ODBC 错误 当服务器尝试处理包含"更新记录"或"插入记录"服务器行为的页时,会出现此错误。数据库无法处理该服务器行为尝试执行的更新或插入操作。 可能的原因和解决方案如下: 该服务器行为正尝试更新数据库表的自动编号字段或者尝试在自动编号字段中插入记录。由于自动编号域由数据库系统自动填充,因此任何从外部用值填充这些域的尝试都会失败。 服务器行为正在更新或插入的数据对于该数据库字段而言是错误的类型,例如将日期插入布尔型(是/否)字段,将字符串插入数值字段,或者将格式不正确的字符串插入"日期/时间"字段。 今天在做Oracle ODBC连接操作的时候出现了以上错误,网上查到的东西先保存在这里,看看是否有用。 今天求助同事“一地鸡毛”,他在写SQL语句的时候不用Select * 就可以了,不知道是不是iid自增字段是用序列的触发器做的原因……还有待考证。 后来才知道是 Oracle的连接方式的问题,如果用rs.open ……,2,2之类的就不存在这样的问题,呵呵,这个是Oracle比较严谨的地方,从SQL SERVER移植到Oracle就有不少问题,但是从Oracle反过来移植到SQL SERVER就没有问题。 http://cn-pn.com/article/4/735.html
------解决方案--------------------
1、权限
2、检查类型兼容性及长度是否有超出本身定义