ОБСУЖДЕНИЕ

Openmail

4 ответов 4,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Добрый день!

Есть кусок кода.
Код:
Dim dbMail As New NotesDatabase( "", "" )
Call dbMail.OpenMail()

Год все работало нормально, тут у одного человека где-то выскочила ошибка. На какой строчке я не знаю.
Ошибка:
Database CN=.../..../...!!mail/....nsf has not been opened yet

Что можно сделать чтобы этой ошибки не было и все-таки из-за чего она возникает?
вроде у человека почта есть, доступ есть и т.д.
 
Похоже, ошибка где-то ниже. Стоит добавить проверку на dbMail.IsOpen
 
nvy, ну ошибка будет полюбому ниже.
Но почему его почтовая база не открылась?
 
если локейшин не настроен ошибка должна быть полюбому :)
 
wowa
Ошибка иногда возникает даже если локейшен настроен правильно... объяснить это невозможно, этот баг я помню ещё с 5-й версии...
Решение - не юзать глючную OpenMail, а что-то типа этого:
Код:
'Библиотека MailBase
Option Public

Const FND_APPOINTMENT = "Appointment"
Const FND_REPLY = "Reply"
Const FND_MEMO = "Memo"
Const IN_MEMO_SUBJECT = "Subject"
Const IN_MEMO_BODY = "Body"
Const IN_MEMO_SENDTO = "SendTo"


Function ConnectMaildb(Server As String, dbPathFull As String) As NotesDatabase
Dim NDB_Mail As NotesDatabase
On Error Goto ErrH

'Подключаемся как к обычной БД, чтобы обойти сообщение "БД сейчас не может быть открыта..." ("Db has not been opened yet")
Set NDB_Mail = New NotesDatabase(Server, dbPathFull)

If NDB_Mail.IsOpen Then
Set ConnectMaildb = NDB_Mail
Exit Function
Else
Error 4063, {Почтовая база "} + dbPathFull + {" на сервере "} + Server + {" не может быть открыта... Проверьте настройки текущего места вызова!}
End If

ErrH:
If Err = 4060 Then
ErrMSG$ = {Отсутствует доступ к почтовой базе "} + dbPathFull + {" на сервере "} + Server + {"... Измените текущее место вызова!}
Else
ErrMSG$ = Error$ & " (" & Err & "), in line: " & Erl & "!"
End If

Messagebox ErrMSG$, 64, "Lotus Notes..."
Err = 0
Exit Function
End Function


Function GetMaildb() As NotesDatabase

userMAIL = Evaluate(|@MailDbName|)

Set GetMaildb = ConnectMaildb(userMAIL(0), userMAIL(1))

End Function
 

Статистика тем

Создано
wowa,
Последний ответ от
VladSh,
Ответы
4
Просмотры
4 132