DBaseTable.Close; //调用BDE的DbiPackTable函数 try DBaseTable.Exclusive := True; DBaseTable.Active := True; Error := DbiPackTable(DBaseTable.DBHandle, DBaseTable.Handle, nil, szdBASE, True); DBaseTable.Active := False; DBaseTable.Exclusive := False; finally DBaseTable.Active := True; end; case Error of DBIERR_NONE: ErrorMsg := 'Successful'; DBIERR_INVALIDPARAM: ErrorMsg := 'The specified table name or the pointer to the table name is NULL'; DBIERR_INVALIDHNDL: ErrorMsg := 'The specified database handle or cursor handle is invalid or NULL'; DBIERR_NOSUCHTABLE: ErrorMsg := 'Table name does not exist'; DBIERR_UNKNOWNTBLTYPE: ErrorMsg := 'Table type is unknown'; DBIERR_NEEDEXCLACCESS: ErrorMsg := 'The table is not open in exclusive mode'; else DbiGetErrorString(Error, Special); ErrorMsg := '[' + IntToStr(Error) + ']: ' + Special; end; {**************************************} {*****物理删除结束后要把Table关闭******} {**如果不关闭,程序不退出,直接打开.dbf文件会提示**} {**文件正在使用,‘**.dbf正处于锁定状态,“另一用户”正在编辑。。**} DBaseTable.Active := False; DBaseTable.Exclusive := False;