把Query1和数据库连接
用下面的代码:
With Query1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('INSERT INTO table1(usrid,d) VALUES(''''+usrid+'''',:dd)');
  ParamByName('dd').AsDate:=now;
  ExecSQL;
end;

解决方案 »

  1.   

    sql:='insert into table1(usrid,d) values('''+usrid+''',d)';
    改为:
    sql:='insert into table1(usrid,d) values('''+usrid+'','''
           +DateTimeToStr(d)+'')';
      

  2.   

    错了不好意思,应为:
    sql:='insert into table1(usrid,d) values('''+usrid+''','''
           +DateTimeToStr(d)+''')';
      

  3.   

    用ExecSQL,
    不用Open.
    是不是select 可以用Open.而其他语句一定要用ExecSQL;
      

  4.   

    把Query1和数据库连接
    用下面的代码:
    With Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('INSERT INTO table1(usrid,d) VALUES(''''+usrid+'''',:dd)')';
      ParamByName('dd').AsDate:=now;
      ExecSQL;
    end;
      

  5.   

    sql:='insert into table1(usrid,d) values('''+usrid+''','''
           +DateTimeToStr(d)+''')';
    上面的兄弟,你這句是不行的。因為字段d在表中是日期型,而你把它轉換
    成字符型賦給它肯定是不對,語法是沒錯誤,但邏輯上是錯誤的。
    還有哪位高手能解決? 
      

  6.   

    With Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('INSERT INTO table1(usrid,d) VALUES('''+usrid+''',:dd)');
      ParamByName('dd').AsDate:=Date;
      {或Parameters.ParamByName('dd').AsDate:=Date;
       适用于ADOQuery}
      ExecSQL;
    end;