送分题!!!快来回答吧。。。(100分)

  • 主题发起人 主题发起人 chelon
  • 开始时间 开始时间
C

chelon

Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个表,其中有一日期型字段,我想在dbgrid中用两个计算字段year、month来分别显示该日期型字段的年、月部分,我已经成功的做到添加数据
了,但在做删除动作时,虽然该日期型字段值已经置空了,但是两个计算字段
的值却仍然存在,分别是1899年和12月,听一些大虾说,其实并没有删除,
只是置0罢了,系统的时间就会定格为1899年12月30日了,所以才会有上述的
情况,我想真正让那两个计算字段置空,那要怎么办呢?请各位大虾不吝指教
(可以的话,请附上SQL语句)
 
??不明白你的意思。
 
能不能赋值 '',具体也没试过
 
This is the answer!!!
update yourTable
set 日期型字段=null
where 日期型字段='1899-12-30'
 
我试过这种问题,一般来说 Delete from Table 就可以了,不行的话,将每个字段赋空值
 
我想你们都有些误会了,其实当我作删除动作时,表中的日期型字段已经是NULL值的
了,但当我删除最后一个字段值时,本来应该是计算字段年、月都是NULL值,但实在是没有。
 
我差点漏说明了最重要的一点,那就是年、月两个计算字段是用decodedate(日期型
字段值)过程提取出来的,所以才有1899年12月30日的值出现。
 
想知道为什么吗?因为你取出来的Decodedate中的日期是空的。
 
我已经在ADOTable1CalcFields()事件中对decodedate()<>''作了判断,还是不行,现在我最想知道的就是在什么地方作出怎样的判断,劳驾了。
 
TField.IsNull 判断一下是否空
 
确实如此。
但是既然是计算字段,那就好办了,在计算时判断一下,是不是1899-12-30就
可以了,若是,将年和月设为空。
 
多人接受答案了。
 
后退
顶部