tclientdataset对nchar(1)处理,似乎是个bug

英年渐肥 2018-01-15 09:23:43
tclientdataset字段如果是fwidestring,size=1,数据编辑时修改数据后譬如1改为0,,Y改为N,记录中字段数据已改变,但是tclientdataset.changecount却等于0。非常奇怪,字段类型改为ftinteger或fstring,数据库为char(1)却没问题。找了下好像是tclientdataset对ftwidestring有问题。
...全文
1121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
英年渐肥 2018-01-17
  • 打赏
  • 举报
回复
目前就这个情况,大家设计数据结构时需要注意
英年渐肥 2018-01-17
  • 打赏
  • 举报
回复
特别注意:如果字段是全部英文字母,字段类型为fwidestring,如果只更改了字符串最后一个字符,数据集不能体现数据修改,tclientdataset修改记录数等于0。所以字符串字段还是要设置为fstring,数据库为varchar。这个真不好啊
英年渐肥 2018-01-16
  • 打赏
  • 举报
回复
不是查找被修改的数据,是它修改的记录数没有体现出来
lyhoo163 2018-01-16
  • 打赏
  • 举报
回复
TClientDataSet的数据行中,有数据变动,加入在TClientDataSet.Delta中,应通过它来,查找被修改的数据。
  • 打赏
  • 举报
回复
数据库为char(1),可能和这个有关吧,改大一些试试。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧