query1.sql.add('delete from aaa.dbf'),执行成功后,用select查不到记录,但aaa.dbf的文件字节未变小,请问如何彻底清空记录?(PACK aaa.dbf功能)。

解决方案 »

  1.   

    function dgPackDbaseTable(Tbl: TTable): DBIResult; { Pack a dBASE table by calling DbiPackTable. The table 
    passed as a parameter will be opened if it isn't open. } 
    begin 
      Result := DBIERR_NA; 
      if Tbl.Active = False then 
        Tbl.Open; 
      Result := DbiPackTable(Tbl.DBHandle, Tbl.Handle, 
        nil, nil, True); 
    end; 
    ****************************
    要压缩dBase数据库很简单,只要下面的操作即可:
    DBIPackTable(Table1.DbHandle, Table1.Handle, 'TABLENAME.DBF', szDBASE, TRUE);
    当然,Table必须用exclusive方式打开!