Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 166
  • Last Modified:

Delphi Programming question

I would like to "Pack" my paradox-table at run-time. By packing I am refering to deleting empty records. In the Database Desktop you can do this when selecting "Restructure", but I want this to be automatic within my application.

I use Delphi Developer 2.0.

Thanks!
Erik N
0
Erik N
Asked:
Erik N
1 Solution
 
WaldekCommented:
Try this
  uses  DBIProcs, DBITypes, DBIErrs;

  function PackTable(table:TTable; db:TDatabase):DBIResult;
  var
    crtd: CRTblDesc;
  begin
    Result := DBIERR_NA;
    with table do if Active then Active := False;
    with db do if not Connected then Connected := True;
    FillChar(crtd,SizeOf(CRTblDesc),0);
    StrPCopy(crtd.szTblName,table.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;
0
 
Erik NAuthor Commented:
Good help there Waldek. Thanx!
Erik N.
0

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now