MailFile ermitteln per VB6 COM

  • Hallo,


    ich will die MailFile ermitteln. Bisher hab ich das so gemacht:


    Dim oDBBookmark As Object 'NotesDatabase
    Dim sMailServer As String
    Dim sMailFile As String


    sMailServer = g_o_NotesSession.GETENVIRONMENTSTRING ("MailServer", True)


    sMailFile = g_o_NotesSession.GETENVIRONMENTSTRING ("MailFile", True)

    Set oDBBookmark = g_o_NotesSession.GETDATABASE(sMailServer, sMailFile, False)


    Jedoch musste ich beim Kunden feststellen, dass die Methode nix taugt, weil er mehrere Mail-DB's hat und diese auch öffnet. Ich bekomme bei MailFile eine Angabe diei nicht mit der geöffneten MailDB übereinstimmt.


    Es gibtt Set notesDatabase = notesSession.CurrentDatabase. Diese ist jedoch unter COM nicht verfügbar.


    Hat jemand einen Tip wie ich noch da ran komme. Danke


    Gruß


    AT

    • Offizieller Beitrag

    versuche es mal mit:
    notesSession.Evaluate( formula$ , docNotesDocument )


    Als Formel verwendest Du @DBName.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Genau das geht leider nicht, Dirk:

    Zitat

    @Functions that affect the user interface do not work in the Evaluate method. These include: @Command, @DbManager, @DbName, ...


    Bernhard

  • Zitat


    weil er mehrere Mail-DB's hat und diese auch öffnet.


    Das bedeutet, er hat mehrere Arbeitsumgebungen? In dem Fall halt das lokale Adressbuch durchgehen, sich die Locationdokumente greifen und Mailserver und -file auslesen.


    "Sein" Mailfile ist aber grundsätzlich das, was in seinem Personendokument eingetragen ist.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hallo,


    danke erstmal. Jedoch hab ich noch ein paar Fragen zu den beiden Lösungsvorschlägen.


    notesDbDirectory.OpenMailDatabase: Hab fast Hurra geschrien. Jedoch benutze ich nicht das Domino-Object, sondern das lotus.Notesession. Dort ist das Object OpenMailDatabase nicht vorhanden.


    Zu notesSession.Evaluate( formula$ , docNotesDocument ) hab ich gegoogelt und festgestellt, das ich dort eine doc aus der DB brauche. Diese DB möchte ich ja erst ermitteln.


    Danke


    Gruß


    AT

  • Natürlich ist die Methode bei NotesSession nicht vorhanden, weil das eine Methode von NotesDBDirectory ist, das du also erst mal aus der Session erzeugen musst.


    Und wie koehlerbv schon geschrieben hat, geht genau das sowieso nicht

  • ist jut...


    wie komme ich jedoch von meinem lotus.notessession auf ein Object das im Domino ist?


    Ich arbeite mit createobject("lotus.notessession")... ich müsste dann mit "domino.notessession" arbeiten... Verweise in meinem Project habe ich nicht, sonder arbeite immer mit latebinding...


    Gruß


    AT

  • Versuch's mal so:


    Dim o_NotesDbDirectory As Object
    Dim o_NotesDatabase As Object


    ...
    Set o_NotesDbDirectory = o_NotesSession.GetDbDirectory( serverName$ )
    Set o_NotesDatabase = o_NotesDbDirectory.OpenMailDatabase( )
    ...



    McNotes

  • genauso hab ich es auch versucht gehabt... ich bekomme immer die Meldung Object ünterstützt die Funktion nicht.


    Das liegt daran, dass bei mir o_NotesSession = CreateObject("notes.NotesSession") ist. Dort gibt es OpenMailDatabase nicht. Es ist ein Teil vom Domino-Object und das habe ich auf den Client nicht.


    Gruß


    AT

  • Sorry aber das ist Quatsch was du da schreibst.


    Notes.NotesSession und Lotus.NotesSession sind bei einem Client beide dabei.


    Notes.* sind dabei OLE Klassen zur Fernsteuerung des Clients während Lotus.* die COM Klassen sind (reines Backend).
    Deswegen gibt es auch nur bei der Notes-Variante die UI-Klassen.