PARADOX数据库图片字段的处理(100分)

  • 主题发起人 主题发起人 向无极
  • 开始时间 开始时间

向无极

Unregistered / Unconfirmed
GUEST, unregistred user!
PARADOX数据库,其GRAPHIC类型字段存放在相应的MD文件中,但我在清空GRAPHIC类型
字段的值后,其MD文件的大小并没有因此减小!不知是什么原因,要用什么方面来清空
GRAPHIC类型的字段值呢?
 
paradox就是这样的,不但graphic类型的清不掉,就是alpha(String)类型的也一样,不信你做个10000条记录的表然后删5000,表的大小不减小,表里没有graphic字段也一样
这是因为paradox吧记录删除之后会有个“空位”

有个方法是将paradox的表压缩(清掉),不过没试过

uses DBIProcs, DBITypes, DBIErrs;
function PackTable(tbl:TTable; db:TDatabase):DBIResult;
var
crtd: CRTblDesc;
begin
Result := DBIERR_NA;
with tbl do if Active then Active := False;
with db do if not Connected then Connected := True;
FillChar(crtd,SizeOf(CRTblDesc),0);
StrPCopy(crtd.szTblName,tbl.TableName);
crtd.bPack := True;
Result := DbiDoRestructure(db.Handle,1,@crtd,nil,nil,nil,FALSE);
end;

Example of use:
procedure TForm1.Button1Click(Sender: TObject);
begin
if PackTable(Table1,DataBase1) = DBIERR_NONE then .....
else MessageBeep(0);
end;
 
接受答案了.
 
后退
顶部