<!--QuoteBegin-Veselinka+29:07:2004, 09:59 -->
<span class="vbquote">(Veselinka @ 29:07:2004, 09:59 )</span><!--QuoteEBegin-->привет Народ, второй день не могу понять в чем проблема:
версия как R5, так и R6.5
Есть код функции, который находит некоторый документ и возвращает либо его либо Nothing.
Если эту функцию проходишь в дебагере по шагам - то она возвращает документ, а если ее не проходишь, то документ она находит (выяснено методом отладки со вставкой месаджбоксов), но она его НЕ ВОЗВРАЩАЕТ. То есть когда из функции происходит возврат - значение указателя обнуляется.
Вот код функции - он обходит адресные книги и проверяет - является ли данное имя группой или нет
Function ISGr(grname) As Notesdocument
Set ISGr=Nothing
Dim session As New NotesSession
abs_ =session.addressBooks
Forall ab In abs_
Set adb=New Notesdatabase(ab.server,ab.filepath)
If adb.Isopen() Then
Set view=adb.GetView("($VIMGroups)")
If Not view Is Nothing Then
Call view.refresh
Set gdoc1=view.getdocumentbykey(grname,True)
If Not gdoc1 Is Nothing Then
Set ISGr=gdoc1
Exit Function
End If
End If
End If
End Forall
End Function
Если есть какие-либо мысли на счет того как это может быть - пишите плиз[/quote]
Есть мысля, как такое может быть. На такие же грабли сам наступал
Имхо проблема в том, что как только функция возвращает результат, а результатом является документ из другой базы, то ссылка на саму базу уничтожается, и соответственно чтобы не оставлять мусора в памяти уничтожаются все подчиненные этой базе объекты, в том числе и найденный документ.
И как только управление переходит за пределы функции - возвращаемого объекта в памяти больше НЕТ.
Имхо отсюда ноги и растут.