Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank Reorganisation??? (https://www.delphipraxis.net/55153-datenbank-reorganisation.html)

Christian18 17. Okt 2005 13:44

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

Datenbank Reorganisation???
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Leute,

ich soll ein kleines Tool schreiben, womit man eine Paradox 7 Tabelle Reorganisieren kann. Habt Ihr eine Idee was das ist und wie man das macht??? Ich habe mal einen kleine Bsp. Tabelle erstellt.

MFG Christian18

MarcoWarm 17. Okt 2005 13:57

Re: Datenbank Reorganisation???
 
immer noch Paradox.... armer Kerl

http://info.borland.com/devsupport/b...structure.html

dstein 17. Okt 2005 14:29

Re: Datenbank Reorganisation???
 
Ich habe da was aus alter Zeit gefunden :-)

DaBa#s
reinitialisieren

Wenn sich mal wieder einer Ihrer Index umgedreht hat, ist es nötig, die zugrundeliegende Tabelle zu reindizieren.
Dazu stellt das TTable-Objekt keinerlei Methodik zur Verfügung.
Allerdings haben Sie ja Zugriff auf die BDE auf Systemebene (siehe Beitrag Blick hinter die Kulissen).
Denn hier stehen Ihnen alle Routinen zur Verfügung, mit denen sich dBase- und Paradox-Tabellen bearbeiten lassen.
Dazu zählt auch die Funktion DbiRegenIndexes.
Mit ein paar Kniffen erhalten Sie daraus eine praxistaugliche Funktion, mit der Sie beliebige Tabellen vom Typ TTable reindizieren:

Delphi-Quellcode:
Function DBReIndex(tbl: TTable) : Boolean;
Var bOpen, bExclusive : Boolean;
Begin
bOpen := tbl.Active;
bExclusive := tbl.Exclusive;
Try
Try
If Not tbl.Exclusive Then
Begin
tbl.Close;
tbl.Exclusive := True;
End;

if Not tbl.Active Then
tbl.Open;

Check(DbiRegenIndexes(Tbl.Handle));
Finally
Result := True;
End;
Except
On E: Exception Do Begin
ShowMessage(E.Message);
Result := False;
End;
End;
If bExclusive And bOpen Then
{alles OK => nichts tun}
Else
Begin
tbl.Close;
tbl.Exclusive := bExclusive;
tbl.Active := bOpen;
End;

End;
Damit die Routine auch ordnungsgemäß kompiliert, müssen Sie verschiedene Bibliotheken in der Uses-Klausel nennen.
Dazu gehören natürlich die beiden Datenbank-Units DBTables und DB,
aber genauso die beiden Interface-Deklarationsdateien DBIProcs und DBITypes.

[edit=r_kerber]Delphi-Tags eingefügt. Das nächste Mal bitte selbst machen. Mfg, r_kerber[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 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