以下程序要实现定时从数据表中显示查询记录,并且把查询时间也显示出来
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Query1: TQuery;
    Session1: TSession;
    Panel1: TPanel;
    Button1: TButton;
    DBGrid1: TDBGrid;
    StatusBar1: TStatusBar;
    Button2: TButton;
    Timer1: TTimer; procedure Form1Create(Sender: TObject); procedure  button1click(sender:TObject); procedure  button2click(sender:tobject);  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Form1Create(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into 学生信息(查询时间)values');
query1.active:=true;
end;
procedure tform1.button1click(sender:tobject);
begin
timer1.enabled:=true;
query1.SQL.add('update 学生信息 set 查询时间=timetostr(now)');
query1.SQL.add('select * from 学生信息');
query1.active:=true;
end;
procedure tform1.button2click(sender:tobject);
begin
timer1.Enabled:=false;
end;
end.

解决方案 »

  1.   

    对于修改数据的语句不要用ACTIVE:=TRUE或OPEN,用EXECSQL
      

  2.   

    同意:Erice(白雪公猪)对于不需要返回结果的操作,使用Query1.ExecSQL,不需要Open、Close
      

  3.   

    这个也有问题吧??
    query1.SQL.add('update 学生信息 set 查询时间=timetostr(now)');
    能通过吗??query1.SQL.add('update 学生信息 set 查询时间='''+timetostr(now)+'''');   ?????
      

  4.   


    type
      TForm1 = class(TForm)
        DataSource1: TDataSource;
        Query1: TQuery;
        Session1: TSession;
        Panel1: TPanel;
        Button1: TButton;
        DBGrid1: TDBGrid;
        StatusBar1: TStatusBar;
        Button2: TButton;
        Timer1: TTimer;// procedure Form1Create(Sender: TObject); procedure  button1click(sender:TObject); procedure  button2click(sender:tobject);  private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}{procedure TForm1.Form1Create(Sender: TObject);
    begin
    query1.Close;
    query1.SQL.Clear;
    query1.SQL.Add('insert into 学生信息(查询时间)values');
    query1.active:=true;
    end;}procedure tform1.button1click(sender:tobject);
    begin
    timer1.enabled:=true;
    query1.SQL.text:='select getdate() as searchdatetime,* from 学生信息');
    query1.open;
    end;procedure tform1.button2click(sender:tobject);
    begin
    timer1.Enabled:=false;
    end;
    end.
      

  5.   

    多谢各位指点,现在问题是怎么能把当前查询时间写入记录,query1.SQL.text:='select timetostr(now) as searchtime,* from 学生信息';好像不对