表Stu的ID字段是整型类型
sql语句如下:    
sqlstr:='insert into Stu(ID) values( '+QuotedStr(self.edtID.Text)+')';
问题是:
当edtID内空时,这条语句插入错误?
 
而下面这样是可以的:
sqlstr:='insert into Stu(ID) values(NULL)';请问如何使edtID内空的时候,就插入NULL呢?if trim(edtID.text)='' then
我知道。
但是我想直接
sqlstr:='insert into Stu(ID) values( '+QuotedStr(self.edtID.Text)+')';这样

解决方案 »

  1.   

    使用ISNULL 函数。INSULL() 有两个参数,第一个是表达式,第二个是替代值。如果第一个表达式是空的就用第二个来替代。
      

  2.   

    自己写函数,然后把edit.text当作参数传进去。
    在函数里,你想怎么判断就怎么判断!
      

  3.   

    试试这样行不行:
    sqlstr:='insert into Stu(ID) values( IsNull('+QuotedStr(self.edtID.Text)+'),'')'; 
      

  4.   

    with adquery1 do
    begin
      close;
      sql.text := 'insert into Stu(ID) values( :ID)'; 
      parameters.parambyname('id').value := trim(edtID.Text);
      ExecSql;
    end;
      

  5.   

    当edtID.text内为空时,还是出现插入错误!
      

  6.   

        self.ADOQuery1.Close;
        sqlstr:='insert into Stu(ID) values(:idd)';
        self.ADOQuery1.SQL.Text:=sqlstr;
        if trim(self.edtID.Text)='' then
         self.ADOQuery1.Parameters.ParamByName('idd').Value:=NULL
        else
    self.ADOQuery1.Parameters.ParamByName('idd').Value:=trim(self.edtID.Text);
       
      

  7.   


    只要这样保证edit内空时,输入NULL