asp错误 '80040e21' 多步 OLE DB 操作产生错误(asp运行错误如何查看原因)学到了吗

随心笔谈2年前发布 编辑
171 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买



今天在做ASP保存数据到MSSQL时出现以下错误提示:

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80040e21’ 多步 OLE DB 操作产生错误。请检查每个 OLE DB 状态值。没有工作被完成。 

后经检查是数据类型不对,保存数据长度超过数据库设置的字段长度.

在向数据库写入数据的时候出现了类型不匹配、字段大小超出、锁定模式错误等,或者记录集没有及时关闭。

例如,配置的某一字段长度为15,在sql语句中确试图插入16位的字符;或者试图插入全角半角模式不正确的字段;

或者使用了错误的记录集锁定方式,rs.open sql,conn,x,y,根据某些blog文章显示,修改打开记录集的方式可能会解决这个问题。

原来一直用的正常程序,突然报

Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80040e21’

ODBC 驱动程序不支持所需的属性。

查询记录少没问题,记录一多就报这个错误

清理了windows\Temp文件夹、inetpub\temp文件夹,还是不行

在网上一通乱搜

MicrosoftOLEDBProviderforODBCDrivers(0x80040E21)–>sql语句出错(数据类型不匹配或表名(字段名)错误或表处于编辑状态,或表不存在于conn打开的数据库中)

最后发现把应用程序池标识改为LocalSystem就可以了,明显是权限问题,把能想到的文件夹一通改终于好了。

友情提醒:应用程序池标识改为LocalSystem,非常不安全

© 版权声明

相关文章