DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 19
在线用户: 9
导航: 论坛 -> 移动应用开发 斑竹:flyers,iamdream  
作者:
男 dfw@111192 (不知火) ★☆☆☆☆ -
盒子活跃会员
2015/9/4 12:28:37
标题:
三层模式下Z9大牛手机对SQL日期型数据修改时出“Could not parse SQL TimeStamp string”的解决办法 浏览:2232
加入我的收藏
楼主: 首先说下运行环境:Win7+XE8.1
1、应用服务器程序使用FireDAC数据控件,连接SQL Server2008数据库,其它数据库没测试过。
为什么用FireDAC?,请参看我的贴子:http://bbs.2ccc.com/topic.asp?topicid=476151
2、同一个APP,在其它手机运行正常,在大牛Z9上修改日期型字段时出“Project *** raised exception class EConvertError with message 'Could not parse SQL TimeStamp string'.”
3、如果改用XE2开发的使用ADO数据控件的应用服务器,则在Z9上运行的APP也没有异常了。
分析:
貌似更换应用服务器中的数据控件问题就解决了,通过对比两个应用服务器程序发现,SQL中的日期时间型字段在ADO里转换成了TDateTimeField字段类型,而在FireDAC里确转换成了TSQLTimeStampField字段类型,难道是FireDAC的Bug吗?
解决办法:
办法真的很简单,甚至我都为这两天的代码跟踪感到莞尔。
uses System.SysUtils
在主窗口的FormCreate事件里添加下面代码即可

  FormatSettings.LongDateFormat:='yyyy-MM-dd';
  FormatSettings.ShortDateFormat:='yyyy-MM-dd';
  FormatSettings.LongTimeFormat:='hh:mm:ss';
  FormatSettings.DateSeparator:='-'; //By 枫长舞 没有这行就出错!

上面代码另一个功能是可以统一你的APP应用在不同手机里日期时间的显示格式。
----------------------------------------------
-
作者:
男 caoweizhong123 (青秋) ★☆☆☆☆ -
盒子活跃会员
2015/9/4 15:50:35
1楼: 谢谢啦!
----------------------------------------------
学习拉!
作者:
男 thinknet (thinknet) ★☆☆☆☆ -
盒子活跃会员
2015/9/4 16:38:19
2楼: 使用以上方法5年以上的结论是,在99.99%的情况下有效。但是一但出现问题,都不知道自己死在哪儿的,所以现在在前后台数据传输过程中一律使用时间截数据进行传输。这样做还有一个好处是可以与其它语言的程序各种兼容。
----------------------------------------------
-
作者:
男 delphiilove (乌羽玉) ★☆☆☆☆ -
普通会员
2017/8/16 23:09:30
3楼: 不起作用,在Delphi 10.1
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS