如何将datetime型变量赋为空值,并将此空值传给TABLE的字段参数。
var
 time:Tdatetime ;
begin
 time := null ;      //此行报错,应将dt置为空值
 oratable1.Close ;
 oratable1.SQL.Text := 'update tablename set rq = :rq ';
 oratable1.ParamByName('rq').AsDateTime := time ;  //此行赋空值给字段
 oratable1.ExecSQL ;
end;问题:
1、time := null 报错
2、怎样用空值更新原字段rq

解决方案 »

  1.   

    Time:Tdatetime;继承类型Double
    怎么可以赋为空呢??建议不要给空值了。。给成 0。就可以了。
    可以在程序中控制一下,凡是为0的记录默认为‘空’
      

  2.   

    var
     time:Tdatetime ;
    begin
     time :=  ;      //此行报错,应将dt置为空值
     oratable1.Close ;
     oratable1.SQL.Text := 'update tablename set rq = :rq ';
     oratable1.ParamByName('rq').Value := Null ;  //此行赋空值给字段
     oratable1.ExecSQL ;
    end;
      

  3.   

    var
     time:Tdatetime ;//其实是浮点类型
    begin
     time :=-1 ;      //此行报错,应将dt置为空值
     oratable1.Close ;
     if time:=-1 then
        oratable1.SQL.Text := 'update tablename set rq =null ';
     else begin
        oratable1.SQL.Text := 'update tablename set rq =:p ';
        oratable1.ParamByName('p').Value :=time;  //此行赋空值给字段    
     end
     oratable1.ExecSQL ;
    end;
      

  4.   

    var
     time:Variant ;//variant类型
    begin
     time := null ;      //此行正确
     oratable1.Close ;
     oratable1.SQL.Text := 'update tablename set rq = :rq ';
     oratable1.ParamByName('rq').AsVariant := time ;  //此行赋空值给字段
     oratable1.ExecSQL ;
    end;
    一切OK,结帐吧!
      

  5.   

    没用参数的必要了:
    //var
    // time:Tdatetime ;
    begin
     //time := null ;      //此行报错,应将dt置为空值
     oratable1.Close ;
     oratable1.SQL.Text := 'update tablename set rq=null';
     //oratable1.ParamByName('rq').AsDateTime := time ; 
     oratable1.ExecSQL ;
    end;
      

  6.   

    你用的不会是Access2000吧。可以调节字段是否为空的控制。
      

  7.   


    begin
     oratable1.Close ;
     oratable1.SQL.Text := 'update tablename set rq = null ';
     oratable1.ExecSQL ;
    end;