AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie komprimiere ich eine Datenbank "Paradox" "DB"
Thema durchsuchen
Ansicht
Themen-Optionen

Wie komprimiere ich eine Datenbank "Paradox" "DB"

Ein Thema von Frank2269 · begonnen am 21. Aug 2003 · letzter Beitrag vom 22. Aug 2003
Antwort Antwort
Frank2269
(Gast)

n/a Beiträge
 
#1

Wie komprimiere ich eine Datenbank "Paradox" "

  Alt 21. Aug 2003, 17:05
Hallo, kann mir irgendjemand sagen wie man eine Datenbank komprimiert?

Bei VB gibt es die Möglichkeit, bei Delphi habe ich bisher nichts gefunden.

Ich arbeite zu Zeit an einer Anwendung wo ich feststellte des die Datenbank zu explodieren scheint.

In dieser werden zwischen 100 - 200 Datensätze Tägl. gespeichert.

Vielen Dank für Eure Mühe

Frank
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#2

Re: Wie komprimiere ich eine Datenbank "Paradox" &

  Alt 21. Aug 2003, 18:06
paradox kennt einen packbefehl meines erachtens nicht. du kanst es nur folgender maßen machen
tempdb anlegen
alle daten in tempdb
hauptdb löschen und danach wieder anlegen
daten von temp -> haupt und dann temp löschen

dringend anzuraten,wenn datenpflege erforderlich ist, auf eine sql-db umzusteigen

raik
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#3

Re: Wie komprimiere ich eine Datenbank "Paradox" &

  Alt 21. Aug 2003, 19:17
Hallo Frank2269,
diese Funktion sollte Dir weiterhelfen. Der Ursprungscode stammt von Andreas Kosch aus dem Buch Delphi 3 Datenbankentwicklung (ISBN 3-7723-4033-4)
Delphi-Quellcode:
function PackTable(var Table: TTable): Boolean;
var
  aCURProps: CURProps;
  aCRTblDesc: CRTblDesc;
  aHDBIDB: HDBIDB;
  OldExclusive: Boolean;
begin
  Result := False;

  with Table do
  begin
    OldExclusive := Exclusive;
    Close;
    Exclusive := True;
    Open;

    Check(DbiGetCursorProps(Handle, aCURProps));

    case aCURProps.iSeqNums of
      // dBASE
      0: begin
           Check(DbiPackTable(DBHandle, Handle, nil, nil, True));
           Result := True;
         end;
      // Paradox
      1: begin
           Close;
           FillChar(aCRTblDesc, SizeOf(aCRTblDesc), #0);
           with aCRTblDesc do
           begin
             StrPCopy(szTblName, Table.TableName);
             bPack := True;
             iFldCount := 0;
           end;
           Check(DbiOpenDatabase(nil, nil, DbiREADWRITE, DbiOpenShared, nil,
                                 0, nil, nil, aHDBIDB));
           Check(DbiSetDirectory(aHDBIDB, PChar(Session.NetFileDir)));
           Check(DbiDoRestructure(aHDBIDB, 1, @aCRTblDesc, nil, nil, nil, False));
           Result := True;
         end;
    else
      begin
      end;
    end;
    Close
    Exclusive := OldExclusive;
    Open;
  end;
end;
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#4

Re: Wie komprimiere ich eine Datenbank "Paradox" &

  Alt 21. Aug 2003, 19:32
das scheint zu gehen. diese variante kannte ich nicht. ich dachte bisher, das die pack methode nur auf dbase verwendet werden kann.


wieder was gelernt
  Mit Zitat antworten Zitat
Frank2269
(Gast)

n/a Beiträge
 
#5

Re: Wie komprimiere ich eine Datenbank "Paradox" &

  Alt 22. Aug 2003, 08:47
Hallo Duffy,

habe deinen Code probiert Funktioniert einfach klasse.

Sollte man in die Codelib aufnehmen.

Gruß

Frank
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz