AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi dBase-Datei mit defektem/fehlenden Index öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

dBase-Datei mit defektem/fehlenden Index öffnen

Ein Thema von PeterRettig · begonnen am 22. Dez 2004 · letzter Beitrag vom 4. Apr 2010
Antwort Antwort
Seite 1 von 2  1 2      
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#1

dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 11:29
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:
  
Table1.DatabaseName := 'c:\';
Table1.TableName := 'Beispiel.dbf';
Table1.ReadOnly := true;
Table1.Open;
Erhalte ich nur eine Fehlermeldung:
"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
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#2

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 12:01
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
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#3

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 12:16
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??
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#4

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 13:06
Zitat:
Die Tabelle wird von einem weiteren Prozeß benutzt,
dann geht grundsätzlich nicht
Table1.ReadOnly := true;
Zitat:
Also "dran herumdoktorn" darf ich nicht. Wenn man einfach
nur die .MDX löscht erhält man im übrigen die gleiche
Fehlermeldung.
gibt es zu dieser Tabelle noch eine weitere Datei/Index ?

Zitat:
Ich frage mich nur, wie wird das von der
Datenbankoberfläche oder von der TTablekomponente zur
Designtime denn gemacht, das es funktioniert??
Grundsätzlich würde ich Datenbankoberfläche und TTable trennen, da es auch unterschiedlich realisiert wurde. Ich glaube nicht, wenn die Tabelle von einem anderen Prozess im Zugriff ist, dass du dann mit Table1.ReadOnly := True in der Delphi-IDE die Tabelle öffnen kannst.

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.
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#5

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 13:30
Zitat:
Grundsätzlich würde ich Datenbankoberfläche und TTable trennen, da es auch unterschiedlich realisiert wurde. Ich glaube nicht, wenn die Tabelle von einem anderen Prozess im Zugriff ist, dass du dann mit Table1.ReadOnly := True in der Delphi-IDE die Tabelle öffnen kannst.
Ich kann aber das Ganze auch (und zwar während der andere Prozess zugreift) mit
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...
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#6

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 14:41
Zitat:
Ich kann aber das Ganze auch (und zwar während der andere Prozess zugreift) mit
dem Objektinspektor öffnen! Einfach den Dateinamen bei Table1 in TableName
eintragen und Active auf true setzen.
entweder es leigt an meinen Delphi oder es gibt was neues
Zitat:
Dann werde ich gefragt ob ich das Teil
im Nur-Lesen-Modus öffnen will und dann Bingo, schon ist die Tabelle geöffnet.
und wie ist dann die der andere Prozess, kannst du der dann noch etwas mit der Tabelle machen?

Zitat:
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...
habe ich zwar nicht im Einsatz - aber mit 3 Verschiedenen TTable-Komponenten ausprobiert.
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.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#7

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 22. Dez 2004, 16:15
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
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#8

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 26. Dez 2004, 19:25
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?
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#9

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 26. Dez 2004, 19:32
hallo peter,

man kann einen Index reparieren :DBIRegenIndexes(table1.handle); vorausgesetzt ist eine exclusiv geöffnete Tabelle.

raik
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
PeterRettig

Registriert seit: 4. Jun 2003
Ort: Schleiz
65 Beiträge
 
Delphi 4 Client/Server
 
#10

Re: dBase-Datei mit defektem/fehlenden Index öffnen

  Alt 26. Dez 2004, 19:37
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!
Warum kann man Atommüll nicht auf dem Mars lagern?
Mars bringt verbrauchte Energie sofort zurück!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:18 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