Autor Thema: Database xy has not been opend yet  (Gelesen 8414 mal)

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Database xy has not been opend yet
« am: 20.08.13 - 13:17:26 »
Ich will aus einer DB eine Volltextsuche in einer anderen DB ausführen.

Im Debuger sehe ich, dass Zugriff auf die andere DB habe. Allerdings bekomme ich beim "search" den o.g. Fehler.
Führe ich das Script in der Original-DB aus (natürlich angepasst), funktioniert es.

Woran liegt das?

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #1 am: 20.08.13 - 13:22:12 »
Auf Anhieb würde ich sagen, es fehlt sowas:

Code
If dbXY.IsOpen then
   ...
End if

Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #2 am: 20.08.13 - 13:22:54 »
Oder ein
Dim dbOther As New NotesDatabase ("", "")

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #3 am: 20.08.13 - 13:31:22 »
ggf. fehlt auch ein
Call db.Open( "", "" )

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 tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Database xy has not been opend yet
« Antwort #4 am: 20.08.13 - 14:02:20 »
Danke für die Antworten. Aber das mit dem "New" und dem "Call" hatte ich auch schon in anderen Beiträgen gefunden. Das bringt das selbe Ergebnis.

Das Problem ist ja auch nicht, dass die DB nicht da ist, wenn ich sie wie gewohnt mit "Set db = session.GetDatabase("", "xy")" hole.
Erst wenn ich den search ausführe, kommt der Fehler.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #5 am: 20.08.13 - 14:04:23 »
Code?

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Database xy has not been opend yet
« Antwort #6 am: 20.08.13 - 14:29:26 »


Option Public
Option explicit

Dim db As NotesDatabase
Dim dbVA As NotesDatabase
Dim dc As NotesDocumentCollection
Dim dcVA As NotesDocumentCollection
Dim doc As NotesDocument
Dim docVA As NotesDocument
Dim query As String
Dim pn As String   
Dim ts As String
Dim te As String

Sub Initialize
   Dim session As New NotesSession
   Set db = session.CurrentDatabase
   Set dbVA = session.GetDatabase("", "Vertragsabrechnung")
   Set dc = db.UnprocessedDocuments   
   Set doc = dc.GetFirstDocument
   Call haupt   
End Sub

Sub haupt
   pn = CStr(doc.pn(0))
   ts = Left(CStr(doc.TxTSLEinzelauftrag(0)),2)
   te = Right(CStr(doc.TxTSLEinzelauftrag(0)),2)
   query = |form = 'HUM' & HU_PN_v <= | + pn + | & HU_PN_b >= | + pn + | & HU_TS_v <= | + ts + | & HU_TS_b >= | + ts + | & HU_TE_v <= | + te + | & HU_TE_b >= | + te
   Set dcVA = dbVA.Search(query, Nothing, 0)
      If dcVA.count = 0 Then
         doc.UmsatzGrp = "15 = Sonstige"
      ElseIf dcVA.count > 1 Then
'         MessageBox "F E H L E R, bitte Admin verständigen", MB_OK, "Umsatzgruppe"
      Else
         Set docVA = dcVA.GetFirstDocument
         doc.UmsatzGrp = docVA.HU_UgpNa(0)
      End If
End Sub

« Letzte Änderung: 20.08.13 - 14:34:52 von tabama »

Offline dnotes

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #7 am: 20.08.13 - 14:43:54 »
Hast Du Dir den querystring mal anzeigen lassen? Vielleicht stimmt damit ja etws nicht.

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Database xy has not been opend yet
« Antwort #8 am: 20.08.13 - 14:56:13 »
Hallo,

das query stimmt, da ich es 1:1 aus eine script heraus kopiert habe, wo es funktioniert. Ich habe das Ganze nämlich erst in der Original-DB getestet.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #9 am: 20.08.13 - 15:02:13 »
Eine falsche Query gibt entweder Formula-Gemecker oder eben keine Resultate.
Ausreichenden Zugriff auf die DB hast Du bzw. die ausführende ID?

By the way: Du führst mit NotesDatabase.Search keine Volltextsuche aus, Martin.

Bernhard

Driri

  • Gast
Re: Database xy has not been opend yet
« Antwort #10 am: 20.08.13 - 15:08:53 »
Sicher, daß die Zuweisung von dbVA korrekt ist ?

Sieht für mich ein wenig merkwürdig aus, daß da eine lokale Datenbank mit Dateinamen "Vertragsabrechnung.nsf" geöffnet werden soll. Könnte aber auch an meiner persönlichen Vorliebe für 8.3-Dateinamen liegen  ;D

Offline dnotes

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #11 am: 20.08.13 - 15:21:25 »
Und die Variablen ts, te und pn haben auch einen Wert?

Offline Keydins

  • Aktives Mitglied
  • ***
  • Beiträge: 163
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #12 am: 20.08.13 - 15:29:41 »
Wenn das Script auf dem Server läuft ist der Serverparameter bei der Zuweisung von dbVA korrekt.


Aber wie Stefan schon schrieb, ein dbVA.IsOpen in den Code einbauen, um zu prüfen, ob die entfernte DB tatsächlich offen ist, wäre sinnvoll.

In dem Zusammenhang ggf. noch den 3. Parameter von ses.GetDatabase auf False setzen, um zu verhindern, dass ein Datenbankobjekt erzeugt wird, obwohl es die Datenabnk gar nicht gibt bzw. kein Zugriff darauf besteht. Per Default ist er True, wenn man ihn weglässt.
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 dnotes

  • Aktives Mitglied
  • ***
  • Beiträge: 106
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #13 am: 20.08.13 - 15:35:26 »
Wenn Du schreibst Du siehst im Debugger dass Du Zugriff auf die andere DB hast - was immer das auch heissen mag - siehst Du im Debugger denn auch unter den DB-Eigenschaften einen DB-Titel??
Wenn nicht hast Du höchstwahrscheinlich auf eine nicht existierende Db referenziert. ( Dateiname falsch geschrieben, Pfad nicht korrekt oder keine Zugriff)

Driri

  • Gast
Re: Database xy has not been opend yet
« Antwort #14 am: 20.08.13 - 15:38:20 »
Zitat
Wenn das Script auf dem Server läuft ist der Serverparameter bei der Zuweisung von dbVA korrekt.

Schon klar. Aber da im Script Messageboxes verwendet werden, gehe ich mal von einem Aufruf im Client aus. Und dann wäre das eine lokale DB, daher die Fragen.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Database xy has not been opend yet
« Antwort #15 am: 20.08.13 - 15:43:49 »
Du solltest auf jeden Fall prüfen, ob die Datenbank vorhanden und sich öffnen lässt.

So kann eine einfache Art der Fehlerbehandlung aussehen.

Sub Initialize
   Dim session As New NotesSession
   Set db = session.CurrentDatabase
   Set dbVA = session.GetDatabase("", "Vertragsabrechnung")

   If Not dbVA.IsOpen Then
       Messagebox "Datenbank kann nicht gefunden bzw. geöffnet werden"
       Exit Sub
  End If

   Set dc = db.UnprocessedDocuments  
   Set doc = dc.GetFirstDocument
   Call haupt  
End Sub

Du solltest einen Code nie ohne die entsprechende Fehlerbehandlung erstellen.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline tabama

  • Aktives Mitglied
  • ***
  • Beiträge: 233
  • Geschlecht: Männlich
  • hier werden Sie geholfen
Re: Database xy has not been opend yet
« Antwort #16 am: 20.08.13 - 16:16:58 »
Danke für die vielen Antworten, bin aber jetzt erst dazu gekommen sie zu lesen.

Verständnisfrage:
Wenn ich die DB im Debuger sehe (also auch mit Werten), dann ist sie doch richtig zugewiesen und ich habe auch Zugriff. Oder muss ich mir da noch um andere Dinge Gedanken machen (sprich Prüfungen einbauen)?

@Bernhard:
Was meinst du mit "keine Volltextsuche"? Ich gehe doch nicht auf einen Index, sonder würfele mir die Dokumente doch aus mehreren Bedingungen zusammen.

Infos:
Ausgeführt wird der Agent über den Clienten (ausgewähle Dokumente).


Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Database xy has not been opend yet
« Antwort #17 am: 20.08.13 - 16:35:06 »
Hallo

Müsste es nicht
Code
set dbVA = session.getDatabase("","Vertragsabrechnung.nsf") 
sein ?

Auf jedenfall mit IsOpen prüfen ob Notes die DB geöffnet hat oder nicht.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

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: Database xy has not been opend yet
« Antwort #18 am: 20.08.13 - 17:15:17 »
Auf welche Platform läuft das Script?
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Database xy has not been opend yet
« Antwort #19 am: 20.08.13 - 17:25:58 »
Hallo

Müsste es nicht
Code
set dbVA = session.getDatabase("","Vertragsabrechnung.nsf") 
sein ?

Auf jedenfall mit IsOpen prüfen ob Notes die DB geöffnet hat oder nicht.

Yipp.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz