AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Erstellen eine Indexdatei für DBASE Datenbank
Thema durchsuchen
Ansicht
Themen-Optionen

Erstellen eine Indexdatei für DBASE Datenbank

Ein Thema von Carlos1997 · begonnen am 16. Jan 2004 · letzter Beitrag vom 17. Jan 2004
Antwort Antwort
Carlos1997

Registriert seit: 3. Jan 2004
Ort: Allendorf/Eder
6 Beiträge
 
#1

Erstellen eine Indexdatei für DBASE Datenbank

  Alt 16. Jan 2004, 20:35
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:
  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;
Leider ist hierfür die Funktion AddIndex nicht die richtige.
Für einen Lösungsvorschlag wäre ich dankbar.

http://www.delphipraxis.net/images/smiles/wall_bash.gif
ouch!

[edit=r_kerber]Delphi-Tags gesetzt. Mfg, r_kerber[/edit]
MfG
Carlos
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Erstellen eine Indexdatei für DBASE Datenbank

  Alt 16. Jan 2004, 21:22
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;
  Mit Zitat antworten Zitat
Carlos1997

Registriert seit: 3. Jan 2004
Ort: Allendorf/Eder
6 Beiträge
 
#3

Re: Erstellen eine Indexdatei für DBASE Datenbank

  Alt 17. Jan 2004, 09:20
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

MfG
Carlos
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: Erstellen eine Indexdatei für DBASE Datenbank

  Alt 17. Jan 2004, 09:48
Hallo Carlos1997,

wenn Du die OH genau studierst, findest Du auch die Methode Update von TIndexDefs!
  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 12:28 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