begin
with qryadd do begin
   close;
   sql.clear;
   sql.add('insert into uuuu(bir) values ('''+edit1.text+ ''')');
   ExecSQL;
end;

解决方案 »

  1.   


    这是正确的~~~~~看看SQL书上的介绍,日期型都需分隔符分隔~~~
    sql.add('insert into uuuu(bir) values ('''+emptdate+ ''')');
    而上面的语句,你将emptdate(日期型值)做加(+)运算,显然出错!
    这在编译期间就通不过!或者你可以改为:
    sql.add('insert into uuuu(bir) values ('''+DateTimetoStr(emptdate)+ ''')');
      

  2.   

    begin
    with qryadd do begin
       close;
       sql.clear;
       sql.add('insert into uuuu(bir) values (:emptdate)');
       ParamByName('emptdate').AsDateTime := emptdate;
       ExecSQL;
    end;
      

  3.   

    sql.add('insert into uuuu(bir) values (:aa);
    parambyname('aa').asstring:=edit1.text
    这样不容易错
      

  4.   

    var emptdate:Tdate;
    begin
    emptdate:=strtodate(edit1.text);
    with qryadd do begin
       close;
       sql.clear;
       sql.add('insert into uuuu(bir) values ('+emptdate+ ')');
       ExecSQL;
    end;