ich habe einen Kunden, dessen Indexdateien bei ADS die Endung .KEY haben. Er hat aber auch Standard-NTX-Dateien, die er lokal bearbeiten möchte.
Ich dachte an eine DBESYS() wie folgt:
Code: Alles auswählen
#include "DBFDBE.ch"
#include "ADSDBE.ch"
PROCEDURE dbeSys()
SET COLLATION TO GERMAN
/* DBFNTX -------------------------------------------------------------------- */
IF ! DbeLoad( "DBFDBE", .T.)
ALERT( "Database Komponente DBFDBE konnte nicht geladen werden!" , {"OK"} )
ENDIF
IF ! DbeLoad( "NTXDBE" , .T.)
ALERT( "Database Komponente NTXDBE konnte nicht geladen werden!" , {"OK"} )
ENDIF
IF ! DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
ALERT( "Database Engine DBFNTX konnte nicht erzeugt werden!" , {"OK"} )
ENDIF
/* ADSDBE -------------------------------------------------------------------- */
DBEINFO( COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_CDX )
DBEINFO( COMPONENT_ORDER, ADSDBE_INDEX_EXT, "KEY" )
DBEINFO( COMPONENT_DATA, ADSDBE_TBL_MODE, ADSDBE_CDX )
DBEINFO( COMPONENT_DATA, ADSDBE_LOCK_MODE, ADSDBE_PROPRIETARY_LOCKING )
DBEINFO( COMPONENT_DATA, ADSDBE_FREETABLE, .T. )
IF ! DbeLoad( "ADSDBE" )
ALERT( "Unable to load ADSDBE", {"Ok"} )
ENDIF
/* Default -------------------------------------------------------------------- */
DbeSetDefault( "DBFNTX" )
RETURN
Code: Alles auswählen
USE dbfdatei NEW
SET INDEX TO dbfdatei
Und ein
Code: Alles auswählen
USE adsdbf NEW VIA ADSDBE
SET INDEX TO adsdbf
Leider erhalte ich aber eine Fehlermeldung, dass die ADSDBF.NTX nicht gefunden wird.
Wenn ich versuchshalber in der Beschreibung der ADSDBE die Anweisung
Code: Alles auswählen
DBEINFO( COMPONENT_ORDER, DBE_EXTENSION, "KEY" )
Nun meine Fragen. Warum funktioniert die ADSDBE_INDEX_EXT -Anweisung nicht? Hat jemand die gleiche Erfahrung gemacht? Gibt es bei mir einen Fehler im Code? Kennt jemand einen Workaround?
Danke im voraus.
Sebastian