AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi BDE Index-Fehlermeldung abfangen?
Thema durchsuchen
Ansicht
Themen-Optionen

BDE Index-Fehlermeldung abfangen?

Ein Thema von PASST · begonnen am 22. Aug 2006 · letzter Beitrag vom 26. Aug 2006
Antwort Antwort
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 09:40
Datenbank: dbase • Version: III • Zugriff über: BDE
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 09:46
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.
Markus Kinzler
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 09:53
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 09:56
Besorg dir doch den ODBC-Treiber von FoxPro. Der unterstützt SQL und müßte auch mit den Indices umgehen können.
Markus Kinzler
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 10:10
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?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 10:16
http://www.microsoft.com/germany/msd...o/default.mspx
Markus Kinzler
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: BDE Index-Fehlermeldung abfangen?

  Alt 22. Aug 2006, 10:42
Leider habe ich auf die Schnelle nichts zur Unterstützung von NSX-Indizes gefunden. Ich habe das mal im passenden MS News Forum gepostet.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: BDE Index-Fehlermeldung abfangen?

  Alt 24. Aug 2006, 10:36
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.
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
374 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: BDE Index-Fehlermeldung abfangen?

  Alt 26. Aug 2006, 12:36
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
  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 15:38 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