zoukankan      html  css  js  c++  java
  • FIREDAC不能识别SQL的某些字段类型

    FIREDAC不能识别SQL的某些字段类型

    经常见有网友有类似的提问:请问各位,在DataSnap中使用SQL数据SUM函数,如果是统计浮点型数值的话,返回是乱码,哪位是什么原因? 
    其实这不是DATASNAP的问题,而是FIREDAC的。
    SQL查询使用SUM(field)函数以后,FIREDAC便不能识别SUM()后的字段类型。
    导致在客户端呈现的后果:数值显示不对。许多人遇到过了此种情况,认为非常不可思议的BUG。
    笔者在使用MSSQLMYSQLORACEL的过程中,发现均有某些字段不能被数据引擎识别的情况。
     
    解决的方法有2种:
    1)在SQL语句中,使用CAST()或convert(),转换sum(field)为指定的字段类型;
    2)在FIREDAC里面进行数据类型映射,将FIREDAC不能识别的类型映射为它可以识别的类型。
    比如FIREDAC不能保存ORACLE的BLOB字段数据:http://www.cnblogs.com/hnxxcxg/p/5599661.html
    比如UNIDAC不能识别CLIENTDATASET的TSINGLEFIELD:http://www.cnblogs.com/hnxxcxg/p/6031080.html
    比如FIREDAC如何做类型映射:http://www.cnblogs.com/hnxxcxg/p/6089326.html
     
    总结:通用型数据库引擎在细节上都有上面的毛病,笔者发现FIREDAC、UNIDAC。。。都有。
    解决办法都如上。
  • 相关阅读:
    分布式事务的MQ实现
    zipkin 介绍入门
    线程5问?
    微服务分布式系统架构,转载,备份
    微服务,分布式架构
    史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!
    Tomcat优化
    windows 下安装kafka
    经典台词
    分布式锁3种实现
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/9420872.html
Copyright © 2011-2022 走看看