我是用DELPHI+ADO+SQL,现在我的数据库中有一个时段表,如下:
   punchin1     punchout1    punchin2   punchout2
   07:30         12:30          14:00     18:00
   07:30         18:00          null      null
现在我在DELPHI界面中,用EDIT的控件显示时间段,同样要追加一个记录,也根据EDIT控件的值,现在我的EDIT控件值为空,怎么样才能正确的追加到时段表中表示为空的呢?我用EDIT1.TEXT=:NULL,提示转换错误,正确的方法是怎样的呢?

解决方案 »

  1.   

    在添加数据的时候判断如果edit.text=''则直接向database中添加null就可以了。
      

  2.   

    我不可能每个EDIT都去判断呀,如果有16个EDIT,那不是要判断N多次了
      

  3.   

    用一循环判断:for i:=0 to ComponentCount -1 do           //所有控件
        if Components[i] if TEdit then         //如果控件为Edit
           if TEdit(Components[i]).Text = '' then       //如果Edit的Text为''
              TEdit(Components[i]).Text := Null;         //则赋值为Null
      

  4.   

    写错了一个字母,不是 if 而是 is    if Components[i] is TEdit then         //如果控件为Edit
      

  5.   

    我在程序中定义了一个变量,有这么一些语句:
    Var
      sj:TDateTime;
    begin
      if Edit1.text='' then
      begin
        sj:=null;(....................)
      end
      else
        sj:=StrToDateTime(Edit1.text);
    end;
    编译程序没有任何问题,但是我在单步测试时,运行到此处时,程序报错误:'Could not convert variant of type(null) into type(double);这是为什么呀
      

  6.   

    用DBedit,怎么样只显示时间,而不显示日期呀,我用了DBEdit1.text:=formatdatetime('hh:mm:ss',DataSource.DataSet.fieldbyname('punchin1').AsDateTime);刚显示出来是只有时间,但拉动一下mouse,日期还是出来了