使用Ehlib的DBDatetimeEditEh的困惑
秋天之落叶 2018-11-14 10:10:46 控件显示 日期1:DBDatetimeEditEh1 日期2:DBDatetimeEditEh2
数据表显示:DBgridEh1(显示数据表)
结构如上,两个datafield和datasource均设置完成。
单独使用DBDatetimeEditEh1、DBDatetimeEditEh2没有问题,光标离开1后,DBgridEh1中显示DBDatetimeEditEh1录入的时间,光标离开2后,表中显示DBDatetimeEditEh2的录入时间;这时候是不是数据已经保存到缓存中了?没有updateBatch是保存不到数据表中的?
问题:在两个chang或者exit事件中加上
if DBDatetimeEditEh1.text<DBDatetimeEditEh2.text then
begin
DBDatetimeEditEh2.setfocus;
showmessage('1不能小于2');
end;
调试时,假如DBDatetimeEditEh2录入正确,光标离开后,再点击DBDatetimeEditEh2录入随便一个时间,光标离开后均提示“could not convert variant of type(unicodestring) into type (double)”错误,这时候dbgrideh1中的记录并不改变,而是上一次录入时间。(用value替换text也是如此),DBDatetimeEditEh2控件里的时间和DBgridEh1里的时间不一致造成的吗?如何解决这个问题?
另外,发现DBcomboboxeh控件也是这个问题,但是给控件一个判断为空后exit的条件语句后,就能解决。而DBDatetimeEditEh控件判断为空exit却不行,错误提示照旧。
错误提示“不能将类型(unicodestring)转换为类型(double)”有点莫名其妙。难道缓存的值和控件的值感知不一致造成的?