你的query1是什么啊,是否应该改成
query1:=TQuery.Create(Owner);with query1 do
begin
.....
end;

解决方案 »

  1.   

    with query1.create(nil) do把这句改成
    with tquery1.create(self) do
      

  2.   

    跟Owner无关,你的Query的Database怎么没有给出?
      

  3.   

    No.1
    with TQuery.Create(nil)  do try
    //  DatabaseName := ?;
    finally
      Free;
    end;No.2
    with Query1 do try
    //  Close;
    exceptend;
      

  4.   

    在 close 之后少了一句:
      sql.clear;
    你第二次执行的时候, SQL已变成 
    select max(qt_id)+1 from qt select max(qt_id)+1 from qt
    你说有没有错?????
      

  5.   

    No.2
    var
      MaxId: Integer;
    begin
      Table1.Insert;
      with Query1 do try
        Close;
        SQL.Text := 'select max(qt_id)+1 from qt';
        Open;
        MaxId := Fields[0].AsInteger;
      except
        MaxId := -1;
      end;
      DBEdit5.Filed.DataSet.Edit;
      DBEdit5.Filed.AsInteger := MaxId;
    end;
      

  6.   

    No.1
    procedure TForm1.Button1Click(Sender: TObject);
    var
      MaxId: Integer;
    begin
      Table1.Insert;  MaxId := -1;
      with TQuery.Create(nil) do try
        DatabaseName := Tabel1.DatabaseName;
        SQL.Text := 'select max(qt_id)+1 from qt';
        Open;
        MaxId := Fields[0].AsInteger;
      finally
        Free;
      end;  DBEdit5.Filed.DataSet.Edit;
      DBEdit5.Filed.AsInteger := MaxId;
    end;
      

  7.   

    应该是with TQuery.Create(Application) do
    然后还要指定DATABASENAME啊。