Seite 1 von 1

oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 8:56
von Manfred
hi,
wo bekomme ich die Nummern zum nachlesen, die hierbei ermittelt werden? Wenn ich eine Verbindung zum ADS aufbauen wil , die max Anzahl an Usern aber schon erreicht ist, kommt 5381. Die steht aber nicht in dem Handbuch. Und es wäre natürlich toll, wenn man möglichst viel erklären kann, warum eine verbindung zum ADS nicht geklappt hat.

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 9:07
von UliTs
Wenn Du den ARC (Data Architekten) installiert hast, kannst du dort die Hilfe aufrufen. Dort sind im allgemeinen alle Fehlernummern aufgeführt.

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 9:10
von Manfred
das habe ich doch schon getan, sie steht aber nicht darin.

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 11:13
von ramses
Hallo Manfred

5381 gibts nicht. Es müsste Fehler 6420 sein Unable to "discover" the Advantage Database Server

Ursache: PDR 6959 (seit 2017)

https://www.alaska-software.com/scripts ... PDRID=6959

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 11:26
von Manfred
tja, was soll ich sagen? Die Nummer kam aber zurück. Deshalb ja meine Frage hier :wink:
PS: OK, hatte den Link erst nachher gelesen. Wattn Kappes.
Aber echt. Eigentlich wurde in dem Fall die Userzahl überschritten. Wie soll man da genau dem Anwender mitteilen, warum die Verbindung gescheitert ist?

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 12:03
von UliTs
Kannst du nicht direkt den ADS ansprechen?

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 12:12
von Manfred
keine Ahnung, so weit bin ich noch nicht. hast Du einen Tipp?

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 12:19
von Herbert
hmmm....überlegen .... einatmen .... sprechen .... zuhören ... :angel8:

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 12:21
von ramses
Du könntest versuchen mit der folgenen Funktion eine bessere Fehlerbeschreibung zu bekommen.
Ich weiss aber nicht ob diese auch die Fehler der ADSDBE zurückgeben kann.

Code: Alles auswählen


function ADSLastErrorString()
    local cDWError := space(2)
    Local nLen := 400
    Local cBuffer := Space(nLen)
    Local nError := 0

    DLLCall("ACE32.DLL",DLL_STDCALL,"AdsGetLastError", @cDWError, @cBuffer, @nLen)
    nError := bin2i(cDWError)

    if nError = 0
        cBuffer := "0000: Kein Fehler gefunden."
    else
        cBuffer := strzero(nError,4,0)+": "+alltrim( charrepl(chr(0),cBuffer," ") )
    endif

return( cBuffer )



Oder den ADS so motivieren dass er mehr User annimmt.

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 12:30
von Manfred
Hi Carlo,
die Menge der User ist schon ok. Mir ist nur in einer testumgebung aufgefallen, das er halt so reagiert, wenn die userzahl erreicht ist und da hatte ich erst mit :lasterrormessage() versucht, die war aber leer. Auf Grund des Problems, natürlich jetzt nachvolziehbar. Also dachte ich mir, dann kann man auch entsprechende Hinweise geben. Was aber so nicht klappte. Ich werde aber mal Deinen Vorschlag versuchen, vielleicht komme ich damit ja weiter.

@Herbert,
und was ist mir Dir? Tauchst Du wieder aus der Versenkung auf, machst Geräusche und verschwindest wieder? :badgrin:

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 15:39
von Wolfgang Ciriack
Also bei mir kommt beim Überschreiten der User ein 7003.

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 15:49
von Manfred
ich habe heute erfahren, dass es mit Win10 zusammenhängen muß. Es gibt einen Eintrag für eine ads.ini. Siehe Seite Tobax https://tobax.de/das-service-pack-02-fu ... verfuegbar

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 15:56
von Jan
Jetzt wo Du es sagst: Ich hab damals den Port mit in den Connectionstring eingebaut. Damit war das dann behoben.

Jan

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 17:17
von Manfred
das habe ich schon

Re: oSession:getlasterror()

Verfasst: Do, 14. Mai 2020 19:35
von Herbert
Manfred hat geschrieben: Do, 14. Mai 2020 12:30 @Herbert,
und was ist mir Dir? Tauchst Du wieder aus der Versenkung auf, machst Geräusche und verschwindest wieder? :badgrin:
Ja, ja, sonst vergesst ihr mich noch...

Re: oSession:getlasterror()

Verfasst: Fr, 15. Mai 2020 13:19
von nightcrawler
Fehler im 5000er Bereich sind clientseitig. 53xx gibt es bei ADS überhaupt nicht. Es könnte sein, dass Alaska diesen Bereich für sich reserviert hat und selbst ausgibt.

Re: oSession:getlasterror()

Verfasst: So, 26. Dez 2021 17:45
von Werner_Bayern
Ergänzend zu Carlos Aufruf von AdsGetLastError im neuen Syntax:

Code: Alles auswählen

EXTERN UINTEGER AdsGetLastError(@nFehlercode AS UINTEGER, @strError AS STRING, @nLen AS USHORT) IN ACE32.DLL

/// <summary>
/// <para> Gibt die ausfuehrliche Fehlermeldung des ADS zurueck  </para>
/// <para><bold>nFehler:</bold> optional, bei Bedarf per Referenz uebergeben, enthaelt die aktuelle Fehlernummer des ADS  </para>
/// <para><bold>Beispiel1:</bold> cFehler := AdsFehlerMeldung(@nFehlernummer)  </para>
/// <para><bold>Beispiel2:</bold> confirmbox(, AdsFehlerMeldung())  </para>
/// </summary>
/// <returns> Fehlermeldung oder leeren String </returns>
FUNCTION AdsFehlerMeldung(nFehler)
LOCAL cFehler := space(1000)

nFehler := 0

IF AdsGetLastError(@nFehler, @cFehler, 1000) <> 0
  cFehler := ""
ENDIF
RETURN cFehler