在Button2的Onclick事件为:
query1.RequestLive :=false;
query的结果就不能修改,button1中在设回来也没用,你为什么把
query1.RequestLive设成False呢?
button1中,如果query查询的结果为空呢.
query1.RequestLive在查询前有用,查询后,设置没有用.

解决方案 »

  1.   

    用MSSQL7建一表Table1,在Form1里添加Query1、Edit1和Button1,Query1的
    RequestLive设置为True。在Button1的Click事件为:
      with query1 do
        begin
          close;
          sql.clear;
          sql.add(Edit1.Text);
          open;
        end;运行时,在Edit1里添加Sql语句:
    select * from Table1 where  Salary_No>='1' and Salary_No<='2' and name like 'sds' and PostalCode like '12' and Units like 'sds' and Area like 'sds' and purchase_product like 'sds' and Quantity like '12' and payment like '12' and Purment_level like '1'
    按Button1出现错误:
    Could not find object.其实这句Sql语句是没有错的,在Sql Explorer通过了。但是如果把Query1的属性
    ResquestLiver设置为False时,按Button1就没有错。由于我的程序的设计要求,要使
    Query1既能够查询记录,也能够修改记录,所以一定要把ResquestLiver设置为True时,
    但这样做就不能查询记录,只能修改记录。但如果把ResquestLiver设置为false时,
    这样就可以解决查询的问题,但不能修改记录。如何做,或者说如果用TQuery,要使
    它既能够用SQL语句查询,也能够修改记录,还有什么方法呢?请指教!(如果数据库是用Paradox7,
    就不会出现此问题)
      

  2.   

    在Button1的Onclick事件为:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    query1.close;
    query1.RequestLive :=True;
    query1.open;
    query1.Edit;
    ...
      

  3.   

    button1Click:  with query1 do
      begin
        close;
        RequestLive:=true;
        open;
        edit;
        query1.FieldByName('aaa').asstring:='sdfgfdsg';
        post;
      end;