我想在DateTimePicker插入个NULL值,并保存到数据库,IF语句进行判断,则出错,为什么呢?IF语句没错吧
procedure TForm1.ButAmendClick(Sender: TObject);
begin
         DataSource1.DataSet.Open;
         DataSource1.DataSet.Edit;
         DataSource1.DataSet.FieldByName('公司名称').AsString:= Trim(ComboBCompany.Text) ;
         DataSource1.DataSet.FieldByName('产品类型').AsString:= Trim(ComboBProductType.Text);
         DataSource1.DataSet.FieldByName('维修类型').AsString:= Trim(ComboBMaintainType.Text);
         //DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=DateTimePickerIN.Date;
         DataSource1.DataSet.FieldByName('数量').AsInteger:=SpEAmoutNum.Value;
         DataSource1.DataSet.FieldByName('单位').AsString:=Trim(ComboBUnits.text);
         DataSource1.DataSet.FieldByName('出仓日期').AsDateTime:=DateTimePickerOUT.Date;
         DataSource1.DataSet.FieldByName('维修情况').AsString:=Trim(MemoTroubleDepict.Text);
         DataSource1.DataSet.FieldByName('备注').AsString:=Trim(EditRe.Text);
         if  DateTimePickerIN.Checked=false then
            begin
             DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=null;
            end
         else
            begin
             DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=DateTimePickerIN.Date;
            end;
         end;
        DataSource1.DataSet.Post;
        showMessage('修改成功!');end;
错误提示为:
[错误] Main.pas(151): Declaration expected but identifier 'DataSource1' found
[错误] Main.pas(156): '.' expected but ';' found
[错误] Main.pas(330): Declaration expected but end of file found
[致命错误] Project.dpr(11): Could not compile used unit 'Main.pas'

解决方案 »

  1.   

      刪除這個      end;
                    DataSource1.DataSet.Post;
                    showMessage('修改成功!');
    定義DataSource1再編譯試試
      

  2.   

    可以运行啊,但是保存不了啊!有没有办法让日期能填进空值啊NULL
      

  3.   

    DataSource1.DataSet['入仓日期']:=null(还是nil ???)

    DataSource1.DataSet['入仓日期']:='';
      

  4.   

    我建议你认真看清楚究竟提示的是不是提示你NULL的问题..if DateTimePickerIN.Checked=false then 
    begin 
      DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=null; 
    end 
    else 
      begin 
        DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=DateTimePickerIN.Date; 
      end; 
    end; // 多了这个"end"
      

  5.   

    日期格式好像不能保存成null  你可以这样if DateTimePickerIN.Checked=false then 
    begin 
      DataSource1.DataSet.FieldByName('入仓日期').Asstring:=''; 
    end 
    else 
      begin 
        DataSource1.DataSet.FieldByName('入仓日期').AsDateTime:=DateTimePickerIN.Date; 
      end;