大家看看这个程序,总是提示table是忙的

                            
uses   
      Windows,bde,Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   DB,   DBTables,   Grids,   DBGrids;  
   
  type  
      TForm1   =   class(TForm)  
          DBGrid1:   TDBGrid;  
          DataSource1:   TDataSource;  
          Table1:   TTable;  
          Button1:   TButton;  
          Button2:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
   
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
        function   PackDbfTable(   DbfTable   :   TTable   )   :   boolean;  
  var  
      Form1:   TForm1;  
   
  implementation  
   
  {$R   *.dfm}  
   
  function   PackDbfTable(   DbfTable   :   TTable   )   :   boolean;  
  var  
        errResult   :   DBIResult;  
  begin  
            if   not   DbfTable.Exclusive   then  
            begin  
          DbfTable.Active:=false;  
          DbfTable.Exclusive:=true;  
          DbfTable.Active:=true;  
          end;  
            errResult   :=   DbiPackTable(   DbfTable.dbHandle,   DbfTable.handle,   NIL,   NIL,   true   );  
          DbfTable.Active:=false;  
          DbfTable.Exclusive:=false;  
          DbfTable.Active:=true;  
   
            if   errResult   =   DBIERR_NONE   then  
                    result   :=   true  
            else  
  result   :=   false;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  table1.delete;  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
  packdbftable(table1)     ;  
  end;  
   
  end.  
 

查看回复

相关问题