在一程序中要求一开始就将QUERY组件的active属性设置为true,不得以在其SQL属性中加入一句select * from XX的语句,可是问题来了。在下一次使用这个QUERY组件时,按正常操作步骤都不能通过这个QUERY查询出结果并且返回结果出来了,请问如何解决。

解决方案 »

  1.   

    with query1 do
    begin
      if active then close;
      sql.clear;
      sql.add();
      open;
    end;
      

  2.   

    還有一點,你查看一下雙擊query1控件有沒有把記錄列在里面,如果有,要刪除它們.
      

  3.   

    在FORMSHOW事件中写入
    IF NOT QUERY1.ACTIVE THEN QUERY1.OPEN;
    以后若要调要QUERY,那就动态添加SQL语句吧
    IF QUERY1.ACTIVE THEN QUERY1.CLOSE;
    QUERY1.SQL.CLEAR;
    QUERY1.SQL.ADD(‘’);
    QUERY1.OPEN;
      

  4.   

    with query1 do
    begin
      close;
      sql.clear;
      sql.add('select * from table');
      open;
    end;
      

  5.   

    没有必要再设置active 属性了。
    var
      sqlstr:string;
    being
      sqlstr:='select * from aaaa'//aaaa随便取的名字
      with query1 do
        begin
          close;
          sql.clear;
          sql.add(sqlstr);
          try
           open;
          except
           showmessage('不能执指令');
          end;
        end;
    end;
      

  6.   

    procedure TfmMain.FormCreate(Sender: TObject);begin  query1.close;
      query1.clear;
      query1.sql.add('select * from table');
      query1.open;
    end;procedure TfmMain.FormClose(Sender: TObject);
    begin
    fmMain:=nil;end;