Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BDE Index-Fehlermeldung abfangen? (https://www.delphipraxis.net/75603-bde-index-fehlermeldung-abfangen.html)

PASST 22. Aug 2006 09:40

Datenbank: dbase • Version: III • Zugriff über: BDE

BDE Index-Fehlermeldung abfangen?
 
Hi NG.

Delphi 4 (update 3)

Ich muss leider noch das eine oder andere Programm für dBase Daten schreiben, die normalerweise von einer Clipper Anwendung benutzt werden. Da ich in Delphi dabei auch nicht die richtigen Komponenten für den dbase Zugriff habe, muss ich häufig auf die BDE ausweichen. Das führt dann ab und an zu Problemen. Zu einem wüsste ich gerne eure Meinung dazu.

Je dBase Datei wird von der Clipper Anwendung eine Index-Datei (Typ: SixNSX) erzeugt. Laut dBase Dateibeschreibung kennzeichnet an Byte 1C der Wert 1, dass ein MDX-Index vorhanden ist. Die Clipper Anwendung scheint bei der Erzeugung des SixNSX-Index dieses Byte an und an zu setzen. Das Problem ist aber, dass die BDE bei Vorhandensein dieses MDX-Flags nach einer MDX-Indexdatei sucht, diese nicht findet und somit eine Fehlermeldung ausspuckt. Mit der DBoberfläche von Borland kann ich dieses Verhalten bestätigen. Dort habe ich dann die Möglichkeit aus drei verschiedene Aktionen zu wählen: Im "Nur-Lesen-Modus öffnen", "Fehler beim Öffnen" und "Öffnen und Lösen".

Wie kann ich in Delphi diese Fehlermeldung abfangen und eine der drei Optionen wählen?

Sollte dies nicht gehen, dann möchte ich pauschal das Byte 1C auf den Wert 0 setzen. Wie geht das in Delphi?
(Ich weiß, dass dieser Versuch gewagt ist, da ich die Auswirkungen auf die dBase-Dateien nicht 100%ig kenne. Wobei ich dies manuell schon häufig so gelöst habe!)

Gruß
Peter

mkinzler 22. Aug 2006 09:46

Re: BDE Index-Fehlermeldung abfangen?
 
Du könntest auch mal TDbf antesten, kann mit Clipper-Indizes umgehen. Hab dies aber bisher noch nicht im MU-Betrieb getestet, da ich immer nur Altbestände importiert habe.

PASST 22. Aug 2006 09:53

Re: BDE Index-Fehlermeldung abfangen?
 
Danke für den Tipp. TDbf ist aber nicht das richtige. Zum einen kann die Komponente nicht mit NSX-Indexdateien (SixNSX) umgehen und zum anderen bietet es keine SQL-Unterstützung, die mir aus der BDE schon recht wichtig ist.

mkinzler 22. Aug 2006 09:56

Re: BDE Index-Fehlermeldung abfangen?
 
Besorg dir doch den ODBC-Treiber von FoxPro. Der unterstützt SQL und müßte auch mit den Indices umgehen können.

PASST 22. Aug 2006 10:10

Re: BDE Index-Fehlermeldung abfangen?
 
Bist du dir sicher, dass dieser recht seltene Indextyp SixNSX dort unterstützt wird?

Wo kann finde ich eine Dokumentation mit den unterstützten Indextypen zu Foxpro?

mkinzler 22. Aug 2006 10:16

Re: BDE Index-Fehlermeldung abfangen?
 
http://www.microsoft.com/germany/msd...o/default.mspx

PASST 22. Aug 2006 10:42

Re: BDE Index-Fehlermeldung abfangen?
 
Leider habe ich auf die Schnelle nichts zur Unterstützung von NSX-Indizes gefunden. Ich habe das mal im passenden MS News Forum gepostet.

PASST 24. Aug 2006 10:36

Re: BDE Index-Fehlermeldung abfangen?
 
Inzwischen habe ich eine Antwort aus dem Foxpro Forum erhalten.
Leider unterstützt Foxpro diesen Indextyp SixNSX nicht. Es gibt zwar einen Workaround, aber der ist aufwändiger, als den MDX-Flag zu manipulieren.

stifflersmom 26. Aug 2006 12:36

Re: BDE Index-Fehlermeldung abfangen?
 
Zitat:

Sollte dies nicht gehen, dann möchte ich pauschal das Byte 1C auf den Wert 0 setzen. Wie geht das in Delphi?
(Ich weiß, dass dieser Versuch gewagt ist, da ich die Auswirkungen auf die dBase-Dateien nicht 100%ig kenne. Wobei ich dies manuell schon häufig so gelöst habe!)
Ich würde die Datei als file of Byte öffnen,
an die richtigen Position "seeken" und eine 0 schreiben.

Moin


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 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