TO liuzilu :你的解答好象没有可行性呀,因为前后两个类型都部一样,DELPHI 本身编译都通不过呀!如果前后都以Asstring 类型来保存,那存储的数据还是如我以前所说的 ‘1900-01-01’ 呀?
原因不知道,可以先判断.IsNull后进行复制,如果为空, 使用SetNull
兄弟门,谢谢大家,我终于找倒办法了,我改程序成这样的了 if qryList1Pay_date.Asstring='' then qryList1.ParamByName('pay_date').value:=null else qryList1.ParamByName('pay_date').asdatetime:=qryList1Pay_date.AsDateTime不过还是要谢谢大家,给分了!
qryList1.ParamByName('pay_date').asdatetime:= qryList2.fieldbyname('Pay_date').Asstring;
我曾经这样用过,而且通过了,当然,是当时一不小心写错了,不过也算是一个发现吧。
:p
没办法的时候,我就做一些脱裤子放屁的事情来:
strtodate(FormatDatetime('yyyy-m-d', date));
这样就一班就不会错了。总觉得这是跟delphi的数据类型检测有关系。我在看pascal的指针的时候,有这么一段,说:
a: ^integer;
b: ^integer;a与b就不兼容,不可以这样互相赋值。所以我就不明白了。
qryList1.ParamByName('pay_date').value:= qryList2.fieldbyname('Pay_date').Asstring;
本身编译都通不过呀!如果前后都以Asstring 类型来保存,那存储的数据还是如我以前所说的 ‘1900-01-01’ 呀?
if qryList1Pay_date.Asstring='' then
qryList1.ParamByName('pay_date').value:=null else
qryList1.ParamByName('pay_date').asdatetime:=qryList1Pay_date.AsDateTime不过还是要谢谢大家,给分了!