an anderer Stelle hatte ich mal geschildert, das ich die dbesys falsch aufgebaut hatte. Ich hatte die ADSDBE geladen, konfiguriert, und dann als default gesetzt. Till hatte mich darauf aufmerksam gemacht das ich die aber erst konfigurieren darf nachdem ich die zum default gesetzt habe.
Jetzt bin ich mal am rumtesten wie ich das mit möglichst wenig Aufwand gerade gebogen bekomme. Der ganze ADS-Part sieht so aus:
Code: Alles auswählen
// ADS-Server
IF .NOT. Dbeload("ADSDBE", .F.)
Alert("ADSDBE konnte nicht geladen werden!")
ENDIF
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.)
DbeInfo(COMPONENT_ORDER, ADSDBE_INDEX_EXT ,"CDX")
// Standard-Datenbanktreiber setzen
DbeSetDefault("ADSDBE")
Schiebe ich die DbeSetDefault-Zeile an den korrekten Platz, läuft das Programm nicht mehr. Weil der Alias der zu öffnenden Tabellen unbekannt ist.
Schiebe ich die DbeSetDefault-Zeile an den korrekten Platz, und kommentiere die ADSDBE_TABLENAME_IS_ALIAS-Zeile aus, klappt anscheinend alles einwandfrei. Bislang. Scheint auch logisch, da die in der alten Version ja ohnehin nicht in die Konfiguration eingebunden war.
Da stellen sich mir jetzt zwei Fragen:
1) Läuft das wirklich stabil? Immerhin sind die Daten ja alle im alten Modus erstellt worden, und jetzt greife ich im korrekten Modus darauf zu.
2) Welche Auswirkungen hat das ADSDBE_TABLENAME_IS_ALIAS? Standard ist ja .F. Aber ich hatte das auf .T. gesetzt. Auf Empfehlung, ohne wirklich zu wissen (oder mich heute zu erinnern) was genau das jetzt macht.
Jan