Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

Hallo,

eine Anwendung (geschrieben in Clipper 5.3) wird derzeit vom Netzwerk gestartet und unterhält sich mit einem ADS (Version 8.1), die Daten liegen demnach auch im Netz.

Ich muss relativ kurzfristig die Anwendung zur Vorführungszwecken, außerhalb des Unternehmens (und hoher Wahrscheinlichkeit ohne Internetzugang) diese Anwendung dazu bringen, komplett lokal auf einem Rechner / Notebook zu laufen.

Der Punkt mit der lokalen Installation der Anwendung mit allen benötigten dll’s, etc. ist klar.
Damit ich nicht all zu viel Code umstricken muss, habe ich gedacht, installiere ich einfach den ADS auf dem lokalen Rechner (ich habe noch eine 2-Benutzer Entwicklerlizenz für die ADS Version 10). Mappe ein virtuelles Laufwerk auf den Buchstaben wo sonst der ADS und die Daten zu finden sind (im meinem Fall das Laufwerk S:) und dann läuft es vielleicht …
Nein, tut es leider nicht. Wenn ich es richtig verstehe, liegt es daran, dass der Server oder die Anwendung merkt, dass der ADS nicht im Netzwerk sonder auf demselben lokalen Rechner läuft. Und das will irgendwie nicht richtig. Den genauen Wortlaut weiß ich nicht mehr, habe das ganze Gelumpe wieder deinstalliert. Sollte aber jem. das schon so zu laufen bekommen haben, dann … installiere ich es noch einmal.

Weil meine o.g. Idee nicht so richtig will, kommt mir der lokale ADS (adsloc32.dll) in den Sinn. Den habe ich bisher nie gebraucht und daher stehe ich wie ein Ochs vorm Berg und weiß nicht wo ich anfangen muss.

Mir ist nicht ganz klar wo ich was machen muss. Was muss ich im Code anpassen? Wo muss die adsloc32.dll hin? Und, und, und …

Bin dankbar dafür wenn jem. ein paar Grundlegende Tipps / Hinweise in diesem Zusammenhang geben könnte.
Gruß,
Magic
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Hallo Magic,

im Prinzip funktioniert der lokale Zugriff mit Hilfe des adsloc32.dll genauso wie der remote-Zugriff.

Da Du aber die 2-User-Lizenz hast, ist dies vielleicht genauso einfach zu realisieren.
Beim ads darfst Du nicht mit gemappten Laufwerksbuchstaben arbeiten (ich vermute, Du hast das mit SubSt gemacht?)
Stattdessen mußt Du den vollständigen Pfad angeben. Die Daten müssen (natürlich) auf dem Rechner sein, auf dem auch der ADS läuft.

Vielleicht reicht Dir das schon als Information :-) .

Ansonsten zeig mal den Code, wie Du die Connection zum ADS aufbaust.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Für AdsLocal müssen die üblichen Client-DLLs im Ausführungsverzeichnis liegen, außerdem die DLL für ADS/local selbst; ist alles im Client-SDK enthalten. In der ADS.INI (auch im Ausführungsverzeichnis) sollte der Servertyp gewählt sein:

Code: Alles auswählen

[SETTINGS]
ADS_SERVER_TYPE=1 //  ADS_LOCAL_SERVER
Das isses auch schon.
Herzlich,
Tom
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Tom, bist Du dir sicher?
Ich meine, die DLLs sollten im gleichen Verzeichnis wie die Exe liegen.
Zumindest ist das bei mir der Fall.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Sage ich doch. Im Ausführungsverzeichnis. Da, wo auch die EXE liegt, die ausgeführt wird. Nicht im Datenbankverzeichnis. Da gehört überhaupt nix hin, was mit EXEn, DLLs und sonstigem Schnullipulli zu tun hat.
Herzlich,
Tom
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

OK.

Ich werde als erstes noch mal versuchen, den ADS lokal zu installieren und zum laufen zu bringen. Falls das komplett scheitert, dann kümmere ich mich um den AdsLocal.
So der Plan / die Reihenfolge :D
Schauen wir mal, wie weit ich komme :?: :wink:
UliTs hat geschrieben:Beim ads darfst Du nicht mit gemappten Laufwerksbuchstaben arbeiten (ich vermute, Du hast das mit SubSt gemacht?)
Ja, genau so habe ich es versucht, da im genannten Programm (ist auch so ein Uralt Teil :roll: ) nichts ändern wollte.
Zumal das Programm nicht von mir geschrieben wurde und dort mit der Funktion AX_Loaded( "S:" ) und geprüft wird ob der ADS Server verfügbar ist, und alle SET DEFAULT TO "S:\..." den Laufwerksbuchstaben nutzen.
Somit habe ich als mit SubSt S: auf "C\ADS" gemappt. Lief leider nicht.
Gruß,
Magic
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Tom hat geschrieben:Sage ich doch. Im Ausführungsverzeichnis.
Hoppla, ich habe "aktuelles Verzeichnis" und "Ausführungsverzeichnis" verwechselt :shock: :? :D .

Magic,
bei lokalem Zugriff mußt du keinen ADS installieren, nur die DLLs benutzen :-) . Edit: schon wieder hoppla! Du hast es sicher so gemeint wie geschrieben: also ADS Lokal installieren und dann mit Remote-Zugriff über den lokalen ADS auf die Daten zugreifen :) . Ich bin wohl heute nicht besonders fit 8) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

Hi,

etwas passt nicht, leider komme ich nicht darauf was es ist / wo der Fehler ist.
Ich habe in das Ausführungsverzeichnis die adsloc32.dll, adslocal.cfg und die Ads.ini kopiert.
Die Ads.ini hat folgenden Inhalt:

Code: Alles auswählen

;..DESCRIPTION
;This is the Advantage Server Setup File
;..END

[SETTINGS]

; 1 - Local, 2 - Client, 3 - Try Client, fall back to Local
ADS_SERVER_TYPE=1

; NTX or CDX
ADS_INDEX_TYPE=CDX

[databases]

Die Verbindung im Programm wird folgendermaßen aufgebaut:

Code: Alles auswählen

…
SET DEFAULT TO "C:\DATEN"
…
Bei USE bekomme ich dann folgende Fehler:

Code: Alles auswählen

USE &cFile NEW SHARED    ALIAS ( cAlias ) via "DBFCDX"
Fehler DBCMD/1015 Fehlerhaftes Argument: DBUSEAREA

Was ich eigentlich gar nicht verstehe ist die Sache mit der Ads.ini Datei. Ich muss zugeben ich habe bisher noch nie .ini Dateien gebraucht.
Woher weißt die adslocal, dass sie die in der .ini angegebenen Parameter nutzen muss?
Ach ja, muss ich nicht irgendwo die adsloc32.dll laden?

Ist irgendwie nicht meine Welt – vor allem nicht in der Kombination mit dem Clipper Gelumpe. Hilft aber nichts, muss ich zu laufen bringen.

Vielleicht hat noch jemand einen Tipp für mich.
Zuletzt geändert von Magic am Do, 24. Jan 2013 10:14, insgesamt 1-mal geändert.
Gruß,
Magic
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

VIA DBFCDX. Ohne Anführungszeichen.
Herzlich,
Tom
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

Tom hat geschrieben:VIA DBFCDX. Ohne Anführungszeichen.
Leider nicht, denn dann kommt der Fehler:
"Fehler BASE/1003 Unbekannte Variable. DFBCDX"
ebenso wenn ich es klammere:

Code: Alles auswählen

USE &cFile NEW SHARED ALIAS ( cAlias ) via (DBFCDX)
oder
USE &cFile NEW SHARED ALIAS ( cAlias ) via ("DBFCDX")
Aus lauter Verzweiflung probiere ich einfach auch Unsinniges aus.

Packe ich das in eine Variable

Code: Alles auswählen

cDbeName:= "DBFCDXAX"
USE &cFile NEW SHARED    ALIAS ( cAlias ) via cDbeName
bekomme ich wieder den Fehler:
Fehler DBCMD/1015 Fehlerhaftes Argument: DBUSEAREA
Gruß,
Magic
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

Selbst wenn ich nicht anderes mache und direkt die Tabelle öffnen will

Code: Alles auswählen

SET DEFAULT TO "C:\DATEN"
cTabelle := "AUFTRAG"
cDbe     := "DBFCDX"
USE &cTabelle NEW VIA cDbe
bekomme ich den Fehler:
Fehler DBMSMD/1015 Fehlerhaftes Argument: DBUSERAREA
Es macht mich fuchsig :evil: Irgendwo muss doch der Hund begraben sein :!: :?:
Gruß,
Magic
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Hallo Magic,

irgendwo muß so etwas wie

Code: Alles auswählen

  IF !dbeLoad("ADSDBE")
    MsgBox( "ADSDBE konnte nicht geladen werden => Abbruch!" )
  ENDIF
und

Code: Alles auswählen

  cOldDBEName := dbeSetDefault("ADSDBE")
  cADS_Connect:="DBE=ADSDBE;SERVER="+pADS_Server
  oDacSession := DacSession():New(cADS_Connect)
  IF .not. oDacSession:isConnected()
    ? "Fehler: Verbindung mit Connect-String "+cADS_Connect+" fehlgeschlagen!"
  ENDIF
vorkommen!
Zeig mal, wie da Dein Code aussieht!

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Ist die DBFCDX in dieser Variante überhaupt geladen?

Syntax für USE mit VIA:

Code: Alles auswählen

USE MeineTabelle VIA DBFNTX
USE MeineTabelle VIA ("DBFNTX")
USE MeineTabelle VIA (cDbe)
Mehr gibt's nicht (von Sessions abgesehen).
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von brandelh »

Tom hat geschrieben:VIA DBFCDX. Ohne Anführungszeichen.
das wundert mich jetzt aber, das setzt doch voraus, dass die DBFDBE.DLL und CDXDBE.DLL die lokale ADS*.DLL nutzen.
Ist das wirklich so ?
Ich dachte man müsste eine ADS DBE nutzen ?
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Hallo, Hubert.

Auch wenn die ADSDBE als Default-DBE gesetzt ist, kann man - wie ohne ADS auch - bei jeder beliebigen Tabelle angeben, irgendeine (andere) DBE zu nutzen. Das geschieht dann eben an der ADS vorbei. Ob Magic genau das erreichen will, ist eine andere Frage. Schon möglich, dass sein VIA an dieser Stelle überflüssig ist, weil er ja eigentlich mit der ADSDBE arbeiten will.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von brandelh »

Tom hat geschrieben:Auch wenn die ADSDBE als Default-DBE gesetzt ist, kann man - wie ohne ADS auch - bei jeder beliebigen Tabelle angeben,
irgendeine (andere) DBE zu nutzen. Das geschieht dann eben an der ADS vorbei.
das mit VIA und mehreren DBE ist mir schon bekannt, in der Überschrift und in den Texten stand nur immer ADS lokal nutzen und dann VIA DBFCDX, da war ich stutzig geworden ...
Tom hat geschrieben:Ob Magic genau das erreichen will, ist eine andere Frage. Schon möglich, dass sein VIA an dieser Stelle überflüssig ist,
weil er ja eigentlich mit der ADSDBE arbeiten will.
ich denke, dass dies genau sein Problem ist.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Hallo, Hubert.

Ich denke, da vermuten wir beide richtig. Sollte das so sein, muss er nur die ADSDBE richtig konfigurieren, fertig.

Da ich selbst an einigen Stellen an der ADS vorbeiarbeite (lokale Tabellen, OEM-ANSI-Schwierigkeiten bei Tabellen mit binären Daten), ging ich zunächst davon aus, dass Magic das genau an dieser Stelle auch machen will.
Herzlich,
Tom
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Tom hat geschrieben:Hallo, Hubert.
Ich denke, da vermuten wir beide richtig. Sollte das so sein, muss er nur die ADSDBE richtig konfigurieren, fertig.
Also so ähnlich wie ich vorgeschlagen habe ;-)

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von nightcrawler »

Magic hat geschrieben:eine Anwendung (geschrieben in Clipper 5.3) wird derzeit vom Netzwerk gestartet und unterhält sich mit einem ADS (Version 8.1), die Daten liegen demnach auch im Netz.
Wirklich noch Clipper, also DOS-Programm, und kein Xbase++? Wenn pures Clipper: vergiss es, das wirst Du nicht so einfach zum Laufen bringen! Und für die anderen: Bei Clipper gibt es keinen Local Server, weil ein pures DOS-Programm keine Windows-DLLs laden kann (also ACE3.DLL, AdsLoc32.DLL).
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von UliTs »

Hallo Joachim,

danke für die Information!
Magic, versuchst Du es mit Clipper 5.3 zum laufen zu bringen?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Tom »

Ich habe das so verstanden, dass die App zwar "mit" Clipper 5.3 geschrieben, aber inzwischen mit Xbase++ kompiliert wurde. In Clipper 5.x gab's auch keine VIA-Klausel bei "USE", wenn ich mich recht erinnere.
Herzlich,
Tom
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

Hallo,

ich bin gestern und heute nicht mehr dazu gekommen daran weiter zu arbeiten, …
… das Tagesgeschäft, halt.

Ich habe Eure Posts auch noch nicht detailliert gelesen. Nur so viel:
Es handelt sich tatsächlich noch um Clipper 5.3 (ich hätte es schon gerne umgeschrieben, mir fehlen aber so geschätzte mind. 2 Läute), demnach nicht mit Xbase++ kompiliert. Ja ich will (wollte) es komplett unter Clipper 5.3 zum laufen bringen.
Aber nach dem bisher flüchtigen Lesen, kann ich es mir wohl abschminken.
Gruß,
Magic
Benutzeravatar
Magic
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 343
Registriert: Mo, 11. Jul 2011 12:01

Re: Brauche Hilfe zu ADS LOCAL (adsloc32.dll)

Beitrag von Magic »

nightcrawler hat geschrieben:Wirklich noch Clipper, also DOS-Programm, und kein Xbase++? Wenn pures Clipper: vergiss es, das wirst Du nicht so einfach zum Laufen bringen! Und für die anderen: Bei Clipper gibt es keinen Local Server, weil ein pures DOS-Programm keine Windows-DLLs laden kann (also ACE3.DLL, AdsLoc32.DLL).
Dann betrachte ich das Vorhaben als gescheitert.
Vielen Dank für die Zahlreichen Hilfestellungen. Ohne die entschiedenen Hinweise (dass es eben nicht geht) hätte ich wahrscheinlich noch mehr Zeit verbraten.
Gruß,
Magic
Antworten