Hi,
irgendwie „funzt“ es nicht – oder wie Manfred vielleicht passend sagen würde „Hab ein Brett vorm Kopf“.
Ich versuche irgendwie den ALS zu laufen zu bringen. Und es klappt nicht, und klappt nicht, und …
Hat jem. schon damit Erfahrung gesammelt und kann ein paar Tipps geben?
Zum Beispiel wo genau die Dateien adsloc32.dll und adslocal.cfg liegen müssen. Was ist dabei zu beachten (einfach nur kopieren?).
Und wie sieht dann der typische Verbindungsaufbau mit DacSession():new( ??? ) aus.
Kann ich beim ALS mit :isConnected() feststellen ob die Verbindung erfolgreich war oder geht das nur beim ADS?
Fragen über Fragen. Bin für jeden Tipp dankbar.
Gruß,
Notloesung
Probleme mit dem Advantage Local Server (ALS)
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Hallo, Notloesung.
Im Ausführungsverzeichnis Deiner App (insbesondere letztere); DLLs können aber grundsätzlich irgendwo im System-Suchpfad (nicht im Pfad, der durch SET PATH oder SET DEFAULT Deiner App angegeben wurde!) liegen. Du benötigst außerdem die ADSDBE.DLL und ggf. (falls Du auf deren Funktionen zugreifst) die ADSUTIL.DLL. Außerdem sind die richtigen Client-DLLs ACE32.DLL und AXCWS32.DLL (ggf.) nötig. Wenn Du nur ADS-local machen willst, reichen die aus dem RUNTIME-Verzeichnis der ADSDBE-Installation.Zum Beispiel wo genau die Dateien adsloc32.dll und adslocal.cfg liegen müssen.
Zum Beispiel so:Und wie sieht dann der typische Verbindungsaufbau mit DacSession():new( ??? ) aus.
Code: Alles auswählen
FUNCTION StartAds(cMyAdsPath)
LOCAL oAdsSession, lAdsLoaded := .F., cSession
BEGIN SEQUENCE
IF ! DbeLoad( "ADSDBE" )
MsgBox( "Fehler beim Laden der ADSDBE")
BREAK
ENDIF
cSession := "DBE=ADSDBE;SERVER=" + cMyAdsPath
oAdsSession := DacSession():new( cSession )
IF !oAdsSession:isConnected()
MsgBox("Fehler beim Verbindungsaufbau zum ADS Server")
BREAK
ENDIF
oAdsSession:SetProperty(ADSDBE_OEM_LANG) // wenn Charset OEM
DBESETDEFAULT('ADSDBE')
DbeInfo( COMPONENT_DATA, ADSDBE_TBL_MODE, ADSDBE_NTX)
DbeInfo( COMPONENT_ORDER, ADSDBE_INDEX_EXT, "NTX")
AX_AXSLocking(.T.) // wenn ADS-kompatibles Locking gewünscht
lAdsLoaded := .T.
END SEQUENCE
Return lAdsLoaded
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Hallo Tom,
danke für deine schnelle und dennoch sehr späte (11:49 pm ) Antwort.
Der Teufel liegt wie so oft im Detail.
Ich habe bei der Angabe des Servers nicht spezifiziert dass es sich um einen local Server handelt. Und ohne diese Spezifikation läuft bei mir nichts.
Danach passten noch ein Paar Kleinigkeiten nicht (die Versionen der DLLs waren unterschiedlich und wollten sich nicht miteinander vertragen, etc.) aber diese ließen sich schließlich auch beheben. Und jetzt läuft es!
Schöne Grüße,
Notloesung
danke für deine schnelle und dennoch sehr späte (11:49 pm ) Antwort.
Der Teufel liegt wie so oft im Detail.
Ich habe bei der Angabe des Servers nicht spezifiziert dass es sich um einen local Server handelt. Und ohne diese Spezifikation läuft bei mir nichts.
Code: Alles auswählen
cSession := "DBE=ADSDBE;SERVER=" + cMyAdsPath + ";ADS_LOCAL_SERVER"
Schöne Grüße,
Notloesung