ado执行sql查询出现“发送数据流时出现算术溢出”错误
来源:互联网 发布:淘宝客怎么推广到qq群 编辑:程序博客网 时间:2024/06/06 00:31
开发一个数据采集监控系统,比较变态的是有将近2000项数据。根据数据类型分多个表存储。数据库访问层采用ado。最近发现当一条sql一次性查询1700多个字段数据后就出现“发送数据流时出现算术溢出”错误。虽然实际情况不太可能需要一次性查这么多数据,但是测试反馈的问题还是需要解决。研发就是这么苦逼,需要满足客户的需求,还需要满足测试和上层调用者的需求。
直接把那个sql语句放到sql server中执行没有问题。因此定位是ado的问题。
之前使用的是_RecordsetPtr的open方法来执行sql语句,改成_ConnectionPtr的execute方法就没有问题。_RecordsetPtr的open和_ConnectionPtr的execute方法差别在于_RecordsetPtr可以配置游标的类型。之前使用的游标类型是adOpenStatic,锁类型是adLockBatchOptimistic。将游标类型改成adOpenForwardOnly,锁类型改成adLockReadOnly就能执行成功。或者分别改成adOpenUnspecified和adLockUnspecified,这种设置会自动找到可用的配置。但是这种模式游标只能向前读取,而上层应用是需要指定游标移动位置。他们不想自己把数据一次性读出来再做处理,就想通过数据库模块实现这功能。
一开始认为是sql语句太长了,通过精简sql语句的方式,发现还是不行。只要查询字段数量达到一定程度就会出错。后来无意中发现sql查询的时候有通过as设置查询结果的字段名,把这个去掉用原来数据表的字段名就没问题了。不知道ado做了哪些操作导致了这个问题,网上也没有相关的资料。只能暂时先用这种方法解决。- ado执行sql查询出现“发送数据流时出现算术溢出”错误
- sql 聚合函数 sum 消息 8115,级别 16 将 expression 转换为数据类型 int 时出现算术溢出错误。
- isnull的错误:将 expression 转换为数据类型 nvarchar 时出现算术溢出错误
- 将 varchar 转换为数据类型 numeric 时出现算术溢出错误
- 将 expression 转换为数据类型 int 时出现算术溢出错误。
- 将 expression 转换为数据类型 int 时出现算术溢出错误
- sqlserver数据类型转换(将 nvarchar 转换为数据类型 numeric 时出现算术溢出错误)
- 将float转换为数据类型numeric时出现算术溢出错误
- com.microsoft.sqlserver.jdbc.SQLServerException: 将 IDENTITY 转换为数据类型 numeric 时出现算术溢出错误。
- ADO连接远程Sql Server出现错误
- SQL Server2005 导入时出现* 错误 0xc00470fe: 数据流任务: 产品级别对于
- MySQL5.7.14执行SQL时出现1055错误
- 将numeric转换为数据类型numeric是出现算术溢出错误
- 将numeric转换为数据类型numeric是出现算术溢出错误
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- VC中用ADO连接SQL SERVER出现的错误
- [SQL-码农]数据库错误:在执行批处理时出现错误。错误消息为: 目录名无效
- 向程序发送命令时出现错误
- 比较字母大小
- spring jar包 官网下载方法
- 03-使用cookie记录上次登录的时间
- HDU-1238-Substrings搜索经典题目
- Python—开始编程
- ado执行sql查询出现“发送数据流时出现算术溢出”错误
- Linux文件系统u盘自动挂载
- sizeof()用法汇总
- oracle10g配置远程连接
- 最短路径bellman-ford算法模板
- Android推送通知的实现--采用MQTT协议实现Android消息推送
- PR与PO的控制
- oracle scott 用户下emp,dept,bonus等表的关联查询
- 什么是智能dns解析