Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Don Pasquale am 07.11.03 - 09:42:04

Titel: neu VISUAL BASIC Problem: ID Datei konnte nicht geöffnet werden
Beitrag von: Don Pasquale am 07.11.03 - 09:42:04
NEU :

Ich will das Problem nochmal neu beschreiben :

Der User hat Lotus auf C,
das DATA Verzeichnis und seine ID Datei auf einem gemappten Laufwerk W.

Folgende Zeile:
 Call LNSession.Initialize(strPassword)

wirft diesen Fehler auf:
-2147217504
Die ID Datei konnte nicht geöffnet werden.

Wer weiss Rat ?

********************************
Altes Posting



Hallo Leute,

ich habe ein Visual Basic Programm geschrieben, welches Datensätze in einer Lotus DB erstellt.
Das Programm funktioniert auch - auf meinem Rechner. ( NT )
Aber nicht beim Kunden.

Das Problem ist höchstwahrscheinlich das
DIM LNSESSION as NotesSession

Hat da jemand eine Idee für mich ?

Hier ein Codeauszug :

Const VERSION = "1.01"
Const OS = "NT Workstation"
Public strLotusserver As String
Public strLotusDBFile As String
Public strPassword As String
Public bLogging As Boolean
Public strLogfile As String

Private Sub Main()

' NT VERSION
 Dim LNSession As NotesSession
 Dim LNDB As NotesDatabase
' XP Version
'Dim LNSession As Variant
'Dim LNDB As Variant
Dim LNDoc As Variant
Dim item As Variant

Dim obj As NotesEmbeddedObject
Dim rti As NotesRichTextItem

Dim strCommandLine As String
Dim strNewPassword As String
Dim Zeile1 As String
Dim myBESITZER As String
Dim myVorname As String
Dim myNachname As String
Dim myTITEL As String
Dim myGRUPPE As String
Dim myVERZEICHNIS As String


On Error GoTo ErrHandler

strCommandLine = Command()
writeLog ("StrCommandline" & strCommandLine)

myGRUPPE = Trim(sWord(strCommandLine, "#", 1))
writeLog ("MyGruppe :" & myGRUPPE)

myBESITZER = sWord(strCommandLine, "#", 2)
writeLog ("MyBESITZER :" & myBESTIZER)

If myBESITZER <> "" Then
    myVorname = Trim(sWord(myBESITZER, ",", 2))
    myNachname = Trim(sWord(myBESITZER, ",", 1))
    myBESITZER = myVorname & " " & myNachname
End If

myTITEL = sWord(strCommandLine, "#", 3)
myVERZEICHNIS = sWord(strCommandLine, "#", 4)

' NT & XP Version

    Set LNSession = New NotesSession
    writeLog ("Set LNSession = New NotesSession nachher")
' XP Version ?????
  '   Set LNSession = CreateObject("Notes.NotesSession")
 
 strPassword = Decode(strPassword)
 Call LNSession.Initialize(strPassword)
If Not LNSession Is Nothing Then
 Set LNDB = LNSession.GetDatabase(strLotusserver, strLotusDBFile)
 Set LNDoc = LNDB.CreateDocument
 Call LNDoc.AppendItemValue("BESITZER", myBESITZER)
 Call LNDoc.AppendItemValue("GRUPPE", myGRUPPE)
 Call LNDoc.AppendItemValue("TITEL", myTITEL)
 Call LNDoc.AppendItemValue("DATUM", Now)
 Call LNDoc.AppendItemValue("Form", "frmDokument")
 Set rti = LNDoc.CreateRichTextItem("BODY")
 Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", myVERZEICHNIS & "\00001")
  ' Das Dokument speichern
  LNDoc.Save True, False, False
On Error GoTo ErrHandler

Kill (myVERZEICHNIS & "\00001")
RmDir (myVERZEICHNIS)
 
End If

 
Exit Sub

ErrHandler:
   
    writeLog (Now & "  Fehler # " + Str(Err) + " aufgetreten:" + vbCrLf + Now + "  " + Err.Description)
    Set LNDB = Nothing
    Set mLNsession = Nothing

End Sub



Private Function SetNewPassword(aNewPassword As String) As Boolean
 Dim strError As String
 
 If Not Registry_SchreibeWert(HKEY_LOCAL_MACHINE, RegistryPfad, "LotusPassword", Encode(aNewPassword), strError) Then
   MsgBox "Das neue Kennwort konnte nicht gesetzt werden!,vbCritical) "
 End If
 
End Function

Private Function sWord(sourceString As String, separator As String, number As Integer) As String
    searchString$ = sourceString & separator
    For i% = 1 To number
        pos% = InStr(searchString$, separator)
        If pos% = 0 Then Exit For
        substring$ = Left(searchString$, pos% - 1)
        searchString$ = Mid(searchString$, pos% + 1)
    Next
    If pos% > 0 Then
        sWord = substring$
    Else
        sWord = ""
    End If
End Function
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Axel am 07.11.03 - 09:51:36
Hi,

wo tritt denn der Fehler auf ? Wenn du sagst evt. bei NotesSession, dann überprüf doch mal die Registry ob der Notes Client bei der Installation richtig eingebunden wurde.

Unter HKEY_CLASSES_ROOT solltest du auf jeden Fall den Eintrag Notes.NotesSession finden. Wenn das nicht der Fall ist, würde ich den Client nochmals installieren.

Ich hatte schon Fälle, da hat es geholfen.

Axel
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 10:03:18
@Axel,

da der Fehler beim Kunden auftritt und nicht bei mir, weiss ich nicht genau wo der Fehler auftritt.

Ich vermute, dass es begsate LNSession Zeile ist, weil diese beim hausinternen testen auf einem XP Rechner Probleme gemacht hat,
während sie auf NT läuft.
Der Kunde hat jetzt aber NT und dennoch läuft der Code nicht.

Ich werde die Registry mal prüfen, danke für den Tipp

Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Semeaphoros am 07.11.03 - 10:36:16
Hat der Kunde eine Fehlermeldung oder nicht? Wenn ja, wie heisst den die?
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 11:07:06
@Semeahphorus

oh sorry. Der Kunde bekommt folgende Meldung :

Laufzeitfehler '13':
Typen unverträglich


Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Semeaphoros am 07.11.03 - 11:09:25
Wenn denn die Ole-Einstellungen stimmen, wie Axel beschrieben hat, dann kann ich mir nicht vorstellen, dass es die LNSession ist, die das auslöst, hab aber mangels Zeit grad auch keinen besseren Tip zur Hand ..........
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 11:24:11
in der registry steht :
notes.notessession
folgender Eintrag
Notes R4.0 NotesSession

Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 11:53:05
Der Fehler tritt in folgenden Zeile auf - übrigens jetzt auch bei mir - :

Call LNDoc.AppendItemValue("BESITZER", myBESITZER)
Call LNDoc.AppendItemValue("GRUPPE", myGRUPPE)

Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Axel Janssen temp am 07.11.03 - 12:43:22
Was ist myBesitzer für ein datentyp?
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 15:05:21
@Axel,

der Fehler tritt bei mir nicht mehr auf, er hatte die .nsf Datei schlichtweg nicht gefunden.
Beim Kunden ist folgende zeile die den Fehler verursacht

Call LNSession.Initialize(strPassword)

Wobei ich jetzt nur vermuten kann, dass der User sein Password korrekt eingegeben hat.

Ich habe es kontrollieren lassen, das Password ist korrekt.

Wie kann diese Zeile eine Typenunverträglichkeit verursachen ?


Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Axel Janssen temp am 07.11.03 - 15:35:43
Die Fehlermeldung ist in der Tat merkwürdig.
Vielleicht ist die id-Datei nicht in einer der Verzeichnisse, die in der OS-Umgebungsvariable Path stehen?


Gruß Axel
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 16:07:26
Die ID´s liegen auf gemappten Laufwerken, daran sollte es also nciht liegen.
Sollte ich LNSession vielleicht als Variant deklarieren ?
Ciao
Don Pasquale
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: animate am 07.11.03 - 16:22:16
nicht als Variant, aber deklariere doch mal alle Notes-Objekte als Object. Ich kann mich erinnern, das schonaml über OLE gemacht zu haben und dabei alles als Object deklariert zu haben. Vielleicht hilfts...
Titel: Re:VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 07.11.03 - 16:34:30
Könnte es an verschiedenen DLLs liegen ?

Falls ja welche Datei muß ich da überprüfen ?

Ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 14.11.03 - 14:26:03
Ich bin jetzt wieder einen Schritt weiter, der Fehler mit dem das programmbeendet lautet folgendermaßen:

ID Datei konnte nicht gefunden werden Fehler - 2147217504

Das Lotus der Mitarbeiter liegt auf einem gemappten Laufwerk.
Ich habe dann mit einem ID wechseln die ID in das C:\WINNT Verzeichnis kopiert, aber auch dort bekam ich den gleichen Fehler.

Wo bekomme ich Infos zu dieser Fehlernummer ?
Ciao
Don Pasquale

Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: ata am 14.11.03 - 14:40:42
... das sieht so aus, als würdest du die Session irgendwo verlieren...

Noch was ist mir aufgefallen: In deiner Fehlerroutine:
Zitat
Set mLNsession = Nothing

... wo deklarierst du mLNsession?

ata
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 14.11.03 - 14:46:27

tippfehler.
hatte aber keine auswirkungen

ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: ata am 14.11.03 - 23:43:15
... hast du es schon mal ohne dein Fehlerhandling probiert, mit dem Debugger? Die Fehlermeldung könnte eventuell auch nur einen "Type mismatch" meinen - und da gibt es zumeist viele Möglichkeiten...


ata
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 17.11.03 - 11:11:37
Hallo ata,

der Administrator hat meine Code auf seinem Rechner ausgeführt,
sein Lotus liegt unter C:\Lotus\Notes
Dieser Code funktioniert.

Der Fehler tritt bei einem User auf, dessen Lotus auf dem Server liegt,
bzw. in einem gemappten Verzeichnis.

Kann da jemand was mit anfangen.

ps: Ja, mein Logging hatte auch einen Type Mismatch fehler, aber der ist ausgemerzt

Ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: animate am 17.11.03 - 12:50:19
ich weiß, dass man die COM-Objekte, die LotusNotes ab 5.irgendwas zur Verfügung stellt, nur verwenden kann, wenn man eine lokale Installation hat, bei einer Installation auf einem ApplicationServer geht das nicht, weil die entsprechende dll nicht auf dem Rechner installiert/registriert ist, auf dem der Code ausgeführt wird.
Vielleicht ist es bei dir der gleiche Grund. Bei den COM-Objekten kann man das lösen, in dem man die dll (NLSXBE.DLL) auf dem entsprechenden Rechner registriert.
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 17.11.03 - 15:38:48
@potsmoker ?
Bist Du sicher, dass es die NLSXBE.dll sein muß und nciht die domobj.tlb ?
Ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: animate am 17.11.03 - 15:40:28
ziemlich. die Typelibrary brauchst du allerdings zum Entwickeln.
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 18.11.03 - 13:24:10
Ich habe nun versucht, diese dll zu registrieren,
aber höchstwahrscheinlich müssen noch andere Dateien registriert sein,
da er das Modul nicht finden kann.

ein einfaches kopieren der nlsxbe.dll auf den betroffenen rechner und ein regisrtieren dieser datei reicht nicht aus. Der Fehler bleibt derselbe

Ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: Typenunverträglich
Beitrag von: Don Pasquale am 18.11.03 - 14:29:26
Es sind nun alle notwendigen DLLs registriert.
Dennoch bleibt der Fehler

-2147217504
ID Datei konnte nicht geöffnet werden

Wo kann ich nachschauen was dieser Errorcode bedeutet ?

Ciao
Don Pasquale
Titel: Re:neu VISUAL BASIC Problem: ID Datei konnte nicht geöffnet werden
Beitrag von: Don Pasquale am 21.11.03 - 13:11:35
Hallo Leute,

das Problem ist gelöst.

Die Notes.INI des users war auf einem gemappten laufwerk und
wurde vom VB Code nicht gefunden. Deswegen wurde die
ID Datei des users nicht gefunden.

Nun steht der erste ernste Test aus.


Ciao

Don Pasquale