Moin,
ich hatte darüber eine Diskussion mit Till. Die mich ziemlich geplättet hat.
Seiner Meinung nach ist meine dbesys falsch. Ich habe den DbeSetDefault("ADSDBE") NACH den ganzen Konfigurationen eingebaut. Und damit seien die wirkungslos gewesen. Und da vor der Konfiguration der ADSDBE in der dbesys die FOXCDX erfolgt ist hätte ich die FOXCDX mit den ADS-Einstellungen durchgeführt.
Was ich dabei nicht verstehe: Warum gibt es keine Laufzeitfehler, wenn ich tatsächlich die FOXCDX mit den DbeInfo für die ads konfiguriert habe? Hätte der nicht merken müssen das ich die FOXCDX mit Werten belegen will, die zu einer anderen DBE gehören?
Und wenn ich das jetzt so umbaue wie Till das meint, also
Code: Alles auswählen
IF .NOT. Dbeload("ADSDBE", .F.)
Alert("ADSDBE konnte nicht geladen werden!")
ENDIF
DbeSetDefault("ADSDBE") // <== Hier hoch kopiert
DbeInfo(COMPONENT_DATA, ADSDBE_LOCK_MODE, ADSDBE_PROPRIETARY_LOCKING) // dbf nur über ADS bearbeitbar
DbeInfo(COMPONENT_DATA, ADSDBE_TBL_MODE, ADSDBE_CDX)
DbeInfo(COMPONENT_ORDER, ADSDBE_TBL_MODE, ADSDBE_CDX)
DbeInfo(COMPONENT_DATA, ADSDBE_RIGHTS_MODE, ADSDBE_IGNORERIGHTS)
DbeInfo(COMPONENT_DATA, ADSDBE_TABLENAME_IS_ALIAS, .T.)
// Standard-Datenbanktreiber setzen
//DbeSetDefault("ADSDBE") // <== Auskommentiert
dann kann ich keine Datenbankoperationen mehr durchführen, wenn ich den Alias beim Öffnen anpasse. Der gibt mir einen Laufzeitfehler weil dieser Alias unbekannt sei. Der ignoriert im USE die Alias-Angabe, und nutzt statt dessen den Standard-Alias für diese Tabelle.
Allerdings läuft das wie ganz oben zu Beginn gepostet seit mehreren Jahren stabil. Obwohl der doch angeblich die ADS-Konfigurationen nicht genutzt hat. Nur jetzt das DbCreate() hatte halt nicht funktioniert.
Jan