QUERY只能对DBF逻辑删除无法进行物理删除???
如何能进行物理删除!
代码如下
     Query2.SQL.Clear;
        ssql:='select * from TABLE';
        Query2.SQL.Add(sSQL);
        Query2.Open;

解决方案 »

  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方式打开!
      

  2.   

    没有简单的方法吗?
    begin 
      Result := DBIERR_NA; 
      if Tbl.Active = False then 
        Tbl.Open; 
      Result := DbiPackTable(Tbl.DBHandle, Tbl.Handle, 
        nil, nil, True); 
    end; 
    中DBIERR_NA是什么????
    一定要用TABLE组件吗
      

  3.   

    mrfanghansheng(☆☆☆木鱼☆☆☆) ( ) 如何将PACK发给数据库???        ssql:=ZAP';
            Query2.SQL.Add(sSQL);
            Query2.Open;
    ???????????
      

  4.   

    如用ADO的话:
    adocommand1.CommandText:='pack 123.dbf ';
    adocommand1.Execute;