Autor Thema: LotusScript: NotesSession.GetDatabase  (Gelesen 4301 mal)

Jürgen Schomann

  • Gast
LotusScript: NotesSession.GetDatabase
« am: 03.03.15 - 16:21:58 »
Wenn ich folgenden Anweisung ausführe:

Set NotesDatabase = NotesSession.GetDatabase(server$, dbfile$, createonfail)

mit dem Parameter createonfail = False und die Datenbank ist nicht vorhanden, wird mir trotzdem ein Datenbankobjekt und nicht wie in der Designer-Hilfe beschrieben Nothing zurückgeben.
Dazu kommt noch wenn ich den Parameter dbfile$ leer lasse erhalte ich auch ein Datenbankobjekt wobei NotesDatabase.FilePath und NotesDatabase.Server jeweils gleich sind also die Serverangabe.
NotesDatabase.IsOpen ist in beiden Fällen richtig = False aber eine Prüfung nach o. g. Anweisung auf Nothing für dasDatenbankobjekt scheint nicht zu funktionieren oder verstehe ich hier etwas falsch?

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: LotusScript: NotesSession.GetDatabase
« Antwort #1 am: 04.03.15 - 10:12:24 »
Kann ich so nicht bestätigen. Wenn ich folgenden Agent ausführe, wird bei mir Nothing ausgegeben:

Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Set db=session.Getdatabase("", "NV.nsf", false)
   If db Is Nothing Then
      Print"Nothing"
   else
      Print db.Isopen
   End if
End Sub

Wobei NV.nsf nicht vorhanden ist.
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Jürgen Schomann

  • Gast
Re: LotusScript: NotesSession.GetDatabase
« Antwort #2 am: 04.03.15 - 12:54:15 »
Wenn man den Parameter createonfail direkt angibt läuft es richtig wenn man aber eine Variable benutzt verhält es sich so wie ich beschrieben habe.

Aber auch wenn man den Parameter direkt mit 'False' angibt wird das Datenbankobjekt nicht mit Nothing überschrieben wenn es vorher mit einem anderen Datenbankobjekt belegt war.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: LotusScript: NotesSession.GetDatabase
« Antwort #3 am: 04.03.15 - 13:02:55 »
Dann schreib doch ein Set db = Nothing in die Zeile darüber ...

Jürgen Schomann

  • Gast
Re: LotusScript: NotesSession.GetDatabase
« Antwort #4 am: 04.03.15 - 13:05:28 »
Das ist richtig aber ändert ja nichts an der Fehlfunktion. Außerdem muss ein Rückgabewert immer gesetzt werden je nach Ergebnis.

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: LotusScript: NotesSession.GetDatabase
« Antwort #5 am: 04.03.15 - 13:32:35 »
Wo steht denn, dass man den Parameter [createonfail] als Variable übergeben darf?

Ich vermute mal, dass das so nicht vorgesehen ist und der Parameter in dem Fall einfach ignoriert wird.

Gruß Dirk
Gruß Dirk

Aktuelle Notesumgebung
~800 BasicClients 9.0.1 FP9 SHF55
  10 FullClients 9.0.1 FP7 SHF143
    7 DominoServer 9.0.1 FP9 HF 139 / 64 Bit

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: LotusScript: NotesSession.GetDatabase
« Antwort #6 am: 04.03.15 - 14:17:07 »
Wo steht denn, dass man den Parameter [createonfail] als Variable übergeben darf?

Ich vermute mal, dass das so nicht vorgesehen ist und der Parameter in dem Fall einfach ignoriert wird.

Gruß Dirk

Prinzipiell steht bei keinem Paramter, dass man diesen als Variable übergeben darf und trotzdem geht es. Ich habe es jetzt bei mir nocheinmal probiert und es sieht eindeutig nach einen Bug aus. Ich würde einen PMR eröffnen.
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: LotusScript: NotesSession.GetDatabase
« Antwort #7 am: 05.03.15 - 09:59:50 »
Ist definitiv ein Bug: Habe es grade mal ausprobiert:
Wenn man den Code so ändert, funktioniert es auch wieder:
Code
Dim blnCreateOnFail as Boolean
blnCreateOnFail = False
Set db=session.Getdatabase("", "NV.nsf", CBool( blnCreateOnFail  ) )

>>>> PMR
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Ralf_M_Petter

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.879
  • Geschlecht: Männlich
  • Jeder ist seines eigenen Glückes Schmied
    • Ralf's Blog
Re: LotusScript: NotesSession.GetDatabase
« Antwort #8 am: 05.03.15 - 10:03:02 »
@Thorsten. Danke für den Workaround
Jede Menge Tipps und Tricks zu IT Themen findet Ihr auf meinem Blog  Everything about IT  Eine wahre Schatzkiste sind aber sicher die Beiträge zu meinem Lieblingsthema Tipps und Tricks zu IBM Notes/Domino Schaut doch einfach mal rein.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz