AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi EDataBaseError / Index is out of date
Thema durchsuchen
Ansicht
Themen-Optionen

EDataBaseError / Index is out of date

Ein Thema von Spargeltarzan · begonnen am 2. Nov 2009 · letzter Beitrag vom 2. Nov 2009
Antwort Antwort
Spargeltarzan
(Gast)

n/a Beiträge
 
#1

EDataBaseError / Index is out of date

  Alt 2. Nov 2009, 02:45
Datenbank: BDE / Paradox • Version: 7.0 • Zugriff über: ODBC
Hallo zusammen

Vor kurzer Zeit hatte ich einen Systemabsturz. Ich hatte aber meine Datenbank (Paradox-Table) auf eine externe Festplatte gespeichert (2täglich). Als ich die letzte aktuelle DB zurück an meinen Programmstandort kopierte und das Programm wieder laufen liess, kam folgende Fehlermeldung: EDataBaseError / Index is out of date. Ich hab dann eine Sicherung zurück kopiert, die 2 Tage älter war. Mit dieser Sicherung funktioniert mein Programmaufruf, ohne Fehlermeldung. Ich hab aber in den 2 Tagen ne Menge Daten in die DB eingegeben. Wenn ich die aktuelle DB nicht wieder zum laufen kriege, dann ist eine Menge Zeit verloren und ich muss dann die Daten nochmals von Hand eingeben.
Wer kann mir helfen ?
Wie bekomm ich die aktuelle DB mit der Fehlermeldung des Programms zum laufen ? Die Dateien sind nicht beschädigt (physisch). Ich hab nur die Dateien der DB mit den Extensions: *.db / *.FAM / *.MB / *.PX / *.TV gesichert. Meine Sekundärindices nicht. An der Datenbankstruktur hab ich ja nichts geändert.
Wenn jemand ein Tip hat, wäre ich dankbar.

Gruss

Spargeltarzan
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#2

Re: EDataBaseError / Index is out of date

  Alt 2. Nov 2009, 02:53
Zitat:
Meine Sekundärindices nicht.
Daß heißt du verwendest dann "andere" Indexdaten, welche eventuell nich zu den restlichen Daten passen?

Kenn mich jetzt mit Datenbanken nicht aus, aber ich würde einfach mal versuchen diese "Sekundärindices" zu löschen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#3

Re: EDataBaseError / Index is out of date

  Alt 2. Nov 2009, 08:30
Die von Dir genannte Fehlermeldung kommt in der Regel dann, wenn der Zeitstempel des Indizes nicht mit dem der Tabelle übereinstimmt. Normalerweise kann man das Problem dadurch beheben, das man die Indizes neu erstellt. Das geht entweder über entsprechende Tools oder direkt über das API der BDE. Die entsprechende Funktion heißt DbiRegenIndexes.

Auch wenn es offtopic ist, aber Du solltest vielleicht auch darüber nachdenken, Dein Programm auf eine modernere und robustere Datenbank zu portieren.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: EDataBaseError / Index is out of date

  Alt 2. Nov 2009, 10:32
Hallo,

Zitat:
Ich hab nur die Dateien der DB mit den Extensions: *.db / *.FAM / *.MB / *.PX / *.TV gesichert. Meine Sekundärindices nicht. An der Datenbankstruktur hab ich ja nichts geändert.
Aha ...
Das die xg_ und yg_ Dateien eine gewisse Größe haben,
und bei einem Insert größer werden,
hat dir nicht zu denken gegeben ?

Diese Dateien enthalten nicht nur die Index-Definition,
sondern den Index selbst !

Du musst IMMER alle Dateien (ausser *.net) eines Paradox-Verzeichnisses sichern.


Lösung:
- DBD (Datenbank-Oberfläche starten)
- die entsprechenden DB-Dateien einzeln öffnen
- "Tabelle - Umstrukturieren", CheckBox "Komprimieren" anklicken
und auf "Speichern"

Dabei werden u.a. Indizes neu erstellt.

Dass Paradox ein DB-Dino ist, wurde ja bereits gesagt ...


#Update:#
Es gibt von Borbarcado ein Tool (TUtilXX), das macht das für ein komplettes Verzeichnis,
muss aber zu der verwendeten BDE-Version passen.

Auf jeden Fall mache erst mal nochmal ein Backup, bevor du loslegst.


Heiko
Heiko
  Mit Zitat antworten Zitat
Spargeltarzan
(Gast)

n/a Beiträge
 
#5

Re: EDataBaseError / Index is out of date

  Alt 2. Nov 2009, 12:10
Hallo zusammen

Vielen Dank für Eure Tips. Leider hatte keiner funktioniert. Ich konnte aber das Problem nun lösen:

1) Die Datenbank neu erstellt (nur Struktur)
2) Die Datensätze dann in diese neue DB eingelesen.
3) Die neue Datenbank über die "alte" (die mit dem Indexfehler) drüberkopiert.

Anschliessend das Programm wie gewohnt gestartet.
Klappte prima.

Gruss

Spargeltarzan
  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 19:31 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