为何有时能够动态创建Tquery,有时却不能???请问何时才能动态创建Tquery???

解决方案 »

  1.   

    有时却不能?
    /////////////////
    你是不是没有uses DB, DBTables啊?
      

  2.   

    动态创建Tquery有错误,代码如下:
    procedure Tspxxlr_form.del_pClick(Sender: TObject);
    var
         spname,sptype:string;
    begin
              try
              spname:=dmform.Query1.fieldbyname('sp_name').AsString;
              sptype:=dmform.query1.fieldbyname('sp_type').asstring;
              if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
              begin
                    with Tquery.Create(nil) do
                    begin
                          try
                          close;
                          databasename:=dmform.Database1.DatabaseName;
                          sessionname:=dmform.Database1.SessionName;
                          sql.Clear;
                          sql.Add('delete from sp_xx where (user_name='''+uname+''')and(sp_type='''+sptype+''')');
                          execsql;
                          finally
                          free;
                          end;
                    end;
                    messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION);;
              end;
              except
              end;
              datarefresh;
    end;
      

  3.   

    你这样做当然出错了
    procedure Tspxxlr_form.del_pClick(Sender: TObject);
    var
         spname,sptype:string;
    begin
      spname:=dmform.Query1.fieldbyname('sp_name').AsString;
      sptype:=dmform.query1.fieldbyname('sp_type').asstring;
      if messagedlg('确定要删除吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
      begin
        with Tquery.Create(Self) do
        try
          databasename:=dmform.Query1.DatabaseName;
          sql.Add('delete from sp_xx where (user_name='+QuotedStr(uname)+') and(sp_type='+QuotedStr(sptype)+')');
          execsql;
          messagebox(handle,'成功删除!','提示',MB_OK+MB_ICONEXCLAMATION);
       finally
         Close;
         free;
      end;
      datarefresh; //这行是什么?如果是刷新数据通过Close/Open/Locate更快
    end;