|
|
导航: |
论坛 -> 移动应用开发
斑竹:flyers,iamdream |
|
作者: |
|
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应用在不同手机里日期时间的显示格式。
----------------------------------------------
- |
作者: |
|
2015/9/4 15:50:35 |
1楼: |
谢谢啦!
----------------------------------------------
学习拉!
|
作者: |
|
2015/9/4 16:38:19 |
2楼: |
使用以上方法5年以上的结论是,在99.99%的情况下有效。但是一但出现问题,都不知道自己死在哪儿的,所以现在在前后台数据传输过程中一律使用时间截数据进行传输。这样做还有一个好处是可以与其它语言的程序各种兼容。
----------------------------------------------
-
|
作者: |
|
2017/8/16 23:09:30 |
3楼: |
不起作用,在Delphi 10.1
----------------------------------------------
-
|
|