为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm8 2025.1.22
【操作系统】:银河麒麟v10(虚拟机)
【CPU】:intel i7-8700
【问题描述】*:
开发环境:dm8安装在虚拟机上的银河麒麟v10上,程序为qt5.12.12开发,运行在win10上,使用qodbc方式连接麒麟系统上的数据库
问题:测试数据写入时,发现有一张表最后十个左右字段在数据库中一直为null,其在数据表中的字段类型为real。但是同样的数据写入MySQL数据库一直都是正常的。
开始以为是数据表字段精度不够,改成float和double都还是null,后面开启详细日志,发现服务端日志上收到的就是null或者说将收到的数据转为了null。
折腾了两天各种情况都怀疑了,最后猜想是不是float有问题,因为别的表中的double是正常的,而其对应也是用double数据写入的,于是写了一段测试代码,先用两个float值写入,结果都为null,然后将其中一个值改为double类型重新写入,结果double类型的那个值就不是null,能正常显示了
这是两个float的情况:
这是一个double一个float的情况:
请问这是qt程序的问题?还是dm odbc的问题?还是达梦不支持qt的float数据?还是由于Windows系统上的odbc驱动问题?还是我有哪一步没想到
SP_SET_PARA_VALUE (2,‘NUMBER_MODE’,0);--NUMBER_MODE = 0 表示建表float对应的内部类型为double,为浮点类型。