![]() |
Erstellen eine Indexdatei für DBASE Datenbank
Hallo,
ich habe ein Problem mit einer älteren Delphi4 Datenbankanwendung. Ich öffne eine DBASE Datenbank mit Table1 und Indexdatei. Leider ist die Indexdatei defekt oder nicht mehr in Ordnung. Nun möchte ich eine Abfrage programmieren die überprüft ob die Indexdatei noch vorhanden ist, wenn nicht soll sie neu erzeugt werden. Beispiel:
Delphi-Quellcode:
Leider ist hierfür die Funktion AddIndex nicht die richtige.
Table1.TableName := 'MUSTER.DBF';
Table1.Exclusive := True; If NOT FileExists('MUSTER.MDX') Then Begin Table1.IndexName := ''; Table1.ReadOnly := False; Table1.Active := True; Table1.AddIndex(Dateiname,'DATUM',[ixPrimary]); Table1.Active := False; End; Für einen Lösungsvorschlag wäre ich dankbar. :wall: ![]() ouch! [edit=r_kerber]Delphi-Tags gesetzt. Mfg, r_kerber[/edit] |
Re: Erstellen eine Indexdatei für DBASE Datenbank
Hallo Carlos1997,
zunächst erst mal willkommen in der Delphi-Praxis. Ein Blick in die OH hätte Dir folgendes Beispiel gezeigt!
Delphi-Quellcode:
with Table1 do begin
Active := False; DatabaseName := 'DBDEMOS'; TableType := ttParadox; TableName := 'CustInfo'; { Vorhandene Tabelle nicht überschreiben } if not Table1.Exists then begin { Die Tabellenkomponente darf nicht aktiv sein. } { Zuerst Typ der Tabelle beschreiben und } { ihr einen Namen zuweisen. } { Danach die Felder der Tabelle definieren. } with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'Field1'; DataType := ftInteger; Required := True; end; with AddFieldDef do begin Name := 'Field2'; DataType := ftString; Size := 30; end; end; { Nun die Indizes definieren } with IndexDefs do begin Clear; { Der erste Index hat keinen Namen, { da er ein Paradox-Primärschlüssel ist } with AddIndexDef do begin Name := ''; Fields := 'Field1'; Options := [ixPrimary]; end; with AddIndexDef do begin Name := 'Fld2Indx'; Fields := 'Field2'; Options := [ixCaseInsensitive]; end; end; { Tabelle mit Methode CreateTable erstellen } CreateTable; end; end; |
Re: Erstellen eine Indexdatei für DBASE Datenbank
Hallo r_kerber,
vielen Dank für deine Antwort, aber ich komme damit leider nicht weiter da die Function CreateTable eine neue Datenbank erzeugt und die vorhande somit überschreibt. Ich möchte aber bei der bestehenden Datenbank eine neue Indexdatei '.MDX' erstellen um wieder Suchfunktionen durchführen zu können. Ein neues anlegen der gesamten Datenbank mit Indexdatei hätte auch den Verlust der gesamten Daten zur Folge. MfG carlos1997 :roll: |
Re: Erstellen eine Indexdatei für DBASE Datenbank
Hallo Carlos1997,
wenn Du die OH genau studierst, findest Du auch die Methode Update von TIndexDefs! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz