![]() |
dBase-Datei mit defektem/fehlenden Index öffnen
Hallo,
ich suche eine Lösung um in einem Programm mit Hilfe der BDE eine dBase-Datei zu öffnen, bei der die Indexdatei .mdx fehlt oder beschädigt ist. Dies soll ausschließlich im readonly-Modus geschehen. Versuche ich eine derartige Datei in der Datenbankoberfläche oder mit dem einer TTable im Designmodus zu öffnen, bekomme ich eine Messagebox "Arbeitsindex nicht vorhanden, fehlerhaft oder Indexschlüssel nicht lesbar." Danach darf ich diese im "Nur-Lesen-Modus" öffnen. Genau das ist auch mein Ziel im Quelltext (natürlich ohne diese Box). Öffne ich aber die gleiche Datei:
Delphi-Quellcode:
Erhalte ich nur eine Fehlermeldung:Table1.DatabaseName := 'c:\'; Table1.TableName := 'Beispiel.dbf'; Table1.ReadOnly := true; Table1.Open; "Beschädigter Header in Tabelle/Index Datei: C:\Beispiel.MDX" und die Tabelle ist natürlich nicht geöffnet. Was kann ich tun? Gruß, Peter |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
entweder
du reparierst die Tabelle oder du erstellst diese MDX-Datei neu oder du löscht die beschädigte MDX-Datei und öffnest dann die Tabelle |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Das Problem bei diesen Vorschlägen ist folgendes:
Die Tabelle wird von einem weiteren Prozeß benutzt, der diesen Index gerne genau so verwendet (wahrscheinlich eine eigene dBase-Engine). Also "dran herumdoktorn" darf ich nicht. Wenn man einfach nur die .MDX löscht erhält man im übrigen die gleiche Fehlermeldung. Ich frage mich nur, wie wird das von der Datenbankoberfläche oder von der TTablekomponente zur Designtime denn gemacht, das es funktioniert?? |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Zitat:
Delphi-Quellcode:
Table1.ReadOnly := true;
Zitat:
Zitat:
Entweder die Tabelle ist exklusiv offen oder nicht. Was passiert wenn du die Tabelle exklusiv aufmachst und der andere Prozess greift darauf zu. Dann bekommt sicherlich die andere Anwendung einen Fehler. Was du machen könntest, dass du die Tabelle über einen share copy in ein anderes Verzeichnis zur Laufzeit kopieren könntest. Dann kannst du über das Verzeichnis auf eine Kopie der Tabelle zugreifen. Vergesse nicht auch die .mdx, .mb oder .ntx oder .nt1 etc. mit zu kopieren. |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Zitat:
dem Objektinspektor öffnen! Einfach den Dateinamen bei Table1 in TableName eintragen und Active auf true setzen. Dann werde ich gefragt ob ich das Teil im Nur-Lesen-Modus öffnen will und dann Bingo, schon ist die Tabelle geöffnet. Bei der beschriebenen Datei handelt es sich im übrigen um die Fritzfax.dbf in der das gleichnamige Programm alle Infos über ein- und ausgehende Faxe ablegt... |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Zitat:
Zitat:
Zitat:
Fazit: Wenn eine Tabelle exklusiv geöffnet ist, kann kein zweiter Prozess diese öffnen. Es sei, die Tabelle wird nicht exklusiv geöffnet. Bei mir ist das reproduzierbar. Auch die IDE gibt Meldungen, dass die Tabelle in Gebrauch ist. |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Hallo PeterRettig,
es sollte eigentlich funktionieren, die Fritz-Datenbanken ohne Fehlermeldung zu öffnen. Mit der Delphi-Datenbankoberfläche erhalte ich eine Fehlermeldung (konnte Tabelle nicht öffnen), aber mit meinem eigenen DB-Manager kann ich die Original-Fritz-DB bei aktivem FritzFax öffnen und auch die Indizies lassen sich verwenden. Ich nutze Win2000, Delphi5 und FritzFax 3.04 Rev. 1.48 mfg eddy |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Ich habe eben festgestellt, dass die Datenbank wirklich
defekt ist (Fritz scheint das aber nicht zu stören). Nach einer Neuinstallation von Fritz ist alles paletti... Gibt es eine Möglichkeit (Freeware etc.) um eine DBase- Datei mit defektem Header/Index etc. zu reparieren? |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
hallo peter,
man kann einen Index reparieren :
Delphi-Quellcode:
vorausgesetzt ist eine exclusiv geöffnete Tabelle.
DBIRegenIndexes(table1.handle);
raik |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Leider bekomme ich die DBF-Datei mit der BDE aber
nicht auf! Gibt es ein Tool ähnlich Advanced DBF Repair als Freeware? 70 $ sind für solch ein Tool deutlich zu viel! |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
hallo peter,
einen hab ich noch, vllt kannst du hier irgendetwas rausholen. ![]() raik |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Hallo Peter,
FritzFax.DBF und FritzFax.MDX sichern FritzFax.MDX löschen Jetzt sollte sich FritzFax.DBF mit Delphis Datenbankoberfläche öffnen lassen Die Fehlermeldung kannst Du mit "löschen und öffnen" bestätigen Probier' das aus und gib' Bescheid. mfg eddy |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Hallo,
ich könnte mich nur noch wiederholen :!: Aber für dBase- oder Clipper-Datenbanken hatte ich dbMAX im Einsatz. Damit kannst du alles ... machen was man dafür braucht. oder google |
Re: dBase-Datei mit defektem/fehlenden Index öffnen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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