我用的是delphi7和access数据库,数据库中数据表格中有日期一项,如何在程序中使用Tquery组件将一个Tdate类型的变量插入倒数据表格中呢?谢。

解决方案 »

  1.   

    Query.FieldByName('XXX').asDateTime := TDate
      

  2.   

    这样它报告”时间日期格式无效(NULL)“的错误。
    我的代码是这样的
    Query1.Params[5].AsDate:=riqi1;
    Query1.Params[6].AsDate:=riqi2;
    然后执行sql语句,其中riqi1,riqi2都是Tdate类型的。在执行sql语句前我打印了riqi1,其中的内容是”2003-3-9“。
      

  3.   

    这样试试:
    query1.params[5].value:=now();
      

  4.   

    出现上述问题一般是时间的年月日顺序不对,用formatdatatime()也可以来转换一下;
      

  5.   

    常用的插入数据的方式有两种:
    1,把所有数据转换成String,如:
    var
      cmdstr:String;
    begin
      cmdstr:=' update youtable set youfield='+Edit1.Text;
    2,使用参数传递,如:
      Query1.Active:=false;
      Query1.SQL.Clear;
      Query1.SQL.Add('update youtable set youfield=:fieldvalue');
      Query1.Parameters.ParamByName('fieldvalue').Value:=Edit1.Text;
      Query1.ExecSQL;
    而且建议采用第二种方式,不用进行任何要传递的数据类型和字符串之间的转换,Borland的VCL会自动把你要传递的数据类型转换成合法的SQL类型传递进去。PS:建议你看一下Jet参考,
    Access的SQL语法跟标准的有点不一样,比如,它的时间好象是用#time#这样的格式。
      

  6.   

    query1.fieldbyname('date').asstring:=formatdatetime('yyyy-mm-dd',datetimepicker1.date);
      

  7.   

    呵呵,如果是SQL写的话,应该这样:
    update UrTable set UrField=#2004-1-31#