• 4609阅读
  • 8回复

qodbc精度丢失 [复制链接]

上一主题 下一主题
离线rsjwj
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-07
qodbc连接oracle数据库,qsqlquerymodel方式取float数据,会有精度丢失,如:14.0500001,取成14.05。  用qoci8连oracle则不会丢失。
但特殊原因,只能用qodbc方式,有没有办法解决?谢谢
离线dbzhang800

只看该作者 1楼 发表于: 2010-01-07
14.0500001

float 精度没这么高吧
离线rsjwj
只看该作者 2楼 发表于: 2010-01-07
没数,总之精度丢失了。
离线dbzhang800

只看该作者 3楼 发表于: 2010-01-07
引用第2楼rsjwj于2010-01-07 23:19发表的  :
没数,总之精度丢失了。


我是想问,你怎么确定它是float呢?(你的系统架构下 float 是64位的?)
离线rsjwj
只看该作者 4楼 发表于: 2010-01-07
oracle中建的表字段就是float, unix下
离线dbzhang800

只看该作者 5楼 发表于: 2010-01-07
哦,不了解 oracle,不清楚它的float是多少位的。
离线shiroki

只看该作者 6楼 发表于: 2010-01-07
这个比较麻烦,恐怕得在qt里添加一些debug信息, 看看odbc的driver和oci的分别怎么处理的type, 有什么不同。
代码在
src/sql/drivers/odbc
src/sql/drivers/oci
主要看数据库类型到qt类型是否转换正确了。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线rsjwj
只看该作者 7楼 发表于: 2010-01-08
谢谢,明天试试
离线rsjwj
只看该作者 8楼 发表于: 2010-01-08
今天重新看了一下,qodbc 和 qoci都没有精度丢失,问题出现在显示上,qsqlquerymodel取出的数直接显示到一个tableview里,精度就丢失了,如何解决还待进一步研究。
快速回复
限100 字节
 
上一个 下一个