怎样在所有字段都不允许空值的情况下插入一条空记录?
 
表结构:DBF_test.DBF
  DBF_Field1  Char(200) not NULL
  DBF_Field2  float     not NULL
  DBF_Field3  Date      not NULL
  DBF_Field4  Memo      not NULL  with DM.ADOtmpQry do
  begin
    close;
    sql.Clear;
    sql.Add('Insert Into [DBF_test] (DBF_Field1,DBF_Field2,DBF_Field3,DBF_Field4) '+
            'Value(:DBF_Field1,:DBF_Field2,:DBF_Field3,:DBF_Field4)');
    with Parameters do
    begin
      ParamByName('DBF_Field1').Value := ''; //字符形的没有问题
      ParamByName('DBF_Field1').Value :=     //数值型的怎么写
      ParamByName('DBF_Field1').Value :=     //日期型也不会
      ParamByName('DBF_Field1').Value :=     //备注型呢
    end;
    ExecSQL;
  end;  

解决方案 »

  1.   

          ParamByName('DBF_Field1').Value := ''; //字符形的没有问题
          ParamByName('DBF_Field1').Value :=0     //数值型的怎么写
          ParamByName('DBF_Field1').Value :=Now     //日期型也不会
          ParamByName('DBF_Field1').Value :=' '     //备注型呢
      

  2.   

    日期型=='1989-12-30'
    如果是asstring,可以:asstring:='';
      

  3.   


    好象TParameters 不支持 AsString, 只有Value
      

  4.   

    一般来说,字符型字段(String, Memo)等插入''即可,浮点型字段(Float,Currency,Date,DateTime)插入0即可,只要你处理数据的时候,把这些值认为是“空值”不处理不就行了……
      

  5.   


    ADOQuery.Parameters 也不支持Clear()
      

  6.   


      with DM.ADOtmpQry do
      var tmp_Date :TDateTime;
      begin
        close;
        sql.Clear;
        sql.Add('Insert Into [DBF_test] (DBF_Field1,DBF_Field2,DBF_Field3,DBF_Field4) '+
                'Value(:DBF_Field1,:DBF_Field2,:DBF_Field3,:DBF_Field4)');
        with Parameters do
        begin
         ParamByName('DBF_Field1').Value := ''; //字符形的没有问题
          ParamByName('DBF_Field1').Value :=     //数值型的怎么写
          ParamByName('DBF_Field1').Value := tmp_Date  //日期型解决了
          ParamByName('DBF_Field1').Value := ''    //备注型解决
        end;
        ExecSQL;
      end;日期型解决了
    现在就剩下数值型的了
      

  7.   

    tmp_Date  没初始化?就是0?就是'1900-1-1'
    我最近发现null的datetime字段asdatetime居然是'1899-12-30',相当于-2,不知道为什么
      

  8.   


    tmp_Date不初始化转换为String 是'1899-12-30',但是插入到数据库中却不显示