if DBDateTimeEditEh1.value='' then
      FieldByName('csrq').AsDateTime:= null
      else
      FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value));
      insert;这里哪错了

解决方案 »

  1.   

    在数据库中设置为允许空值,这样当时间为空时则不insert时间
      

  2.   

      if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').AsVariant := Variants.Null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
          insert; 
      

  3.   

    在数据库中设置为允许空值,这样当时间为空时则不insert时间 当然不行,早试过了 if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').AsVariant := Variants.Null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
          insert; 怎么还是不行呀
      

  4.   

      qry1.Edit;
      qry1.FieldByName('OrderDate').Value := null;
      qry1.Post;
      

  5.   

    FieldByName('csrq').Clear;
    只是时间设置成空值,显示时可能会显示1899年等信息
      

  6.   

    qry1.Edit; 
      qry1.FieldByName('OrderDate').Value := null; 
      qry1.Post;可以插入空值FieldByName('csrq').Clear; 
    只是时间设置成空值,显示时可能会显示1899年等信息, (可以判断一下,如果数据库中如果为空则clear,我试了可以)     if DBDateTimeEditEh1.text='' then
          FieldByName('csrq').value:=null
          else
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value));
         insert;这名话老是报错,哪错了呀
      

  7.   

    //要先使数据集处理可编辑状态时才可能修改字段的值
    insert;   
    if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').AsDateTime:= null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
    Post;
      

  8.   

    //要先使数据集处理可编辑状态时才可能修改字段的值 
    insert;  
    if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').AsDateTime:= null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
    Post; 
    不行
    FieldByName('csrq').AsDateTime:= null 错误
    正确 FieldByName('csrq').value:=null 
    空的话就不行作为时间格式插入
    FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 这名也对的的为什么
     if DBDateTimeEditEh1.text='' then 或者if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').value:=null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
    就错了
      

  9.   


    FieldByName('csrq').AsDateTime:= null 
    换成
    FieldByName('csrq').Clear;
      

  10.   

    要么时间段是CAHR,要么违反了数据的严谨性
      

  11.   


      if DBDateTimeEditEh1.value='' then 
          FieldByName('csrq').clear 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
          insert; 
      

  12.   

    还是不对
    if DBDateTimeEditEh1.text='' then 
          FieldByName('csrq').value:=null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
     在这代码中  FieldByName('csrq').value:=可以执行,正确
    FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 可以执行,正确
     但if DBDateTimeEditEh1.text='' then 
          FieldByName('csrq').value:=null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 就错了,搞不懂
      

  13.   

          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 就错了,搞不懂 
    把这句改成这样试一下:
          FieldByName('csrq').value:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 就错了,搞不懂 
      

  14.   


    我是说单独两句
    FieldByName('csrq').value:=null///FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 都是正确的,但 (((if DBDateTimeEditEh1.text='' then 
          FieldByName('csrq').value:=null 
          else 
          FieldByName('csrq').AsDateTime:=strtodate(formatdatetime('yyyy-mm-dd',DBDateTimeEditEh1.value)); 
    ))))就错了真的搞不懂