skiperski писал(а):А в чём проблема-то? Лень набивать код удаления объектов? Автоматом-то они удаляться должны, но это в VB происходит как получится, а не как задумано. Удаляй всё руками и не думай о том что там должно происходить по-умолчанию.
Sebas писал(а):У тебя набор передаётся по ссылке.....)))))
alibek писал(а):skiperski, есть мнение, что Тарас Бульба говорил "чем я тебя породил, тем я тебя и убью"
To subj:
Т.е. если создал через Set, то и убиваешь через Set, если создал автоматом, то убиваешь сначала "сынка", а затем "папу"
PSV писал(а):но код от этого читается хуже
On Error GoTo hErr
ErrMsg = vbNullString
'------- close all and exit (begin)
ExitRoutine:
On Error Resume Next
'------- close all and exit (break)
'------- close all and exit (continue)
Err.Clear
Exit {MemberType}
'------- close all and exit (end)
'------- error handler (begin)
hErr:
ErrMsg = DbgWriteToLogErr(Err, "{ProjectName}.{ComponentName}.{MemberName}", Erl)
Resume ExitRoutine: GoTo ExitRoutine
'------- error handler (end)
'------- close all and exit (break)
'------- close all and exit (continue)
If (Not rs Is Nothing) Then
If (rs.State) Then rs.Close
Set rs = Nothing
End If
If (Not cn Is Nothing) Then
If (cn.State) Then cn.Close
Set cn = Nothing
End If
Morfius писал(а):А CodeSMART ты где взял??? может линк кинишь, где взял???
Количество неразберихи во вселенной бесконечно. Лишь титаническими усилиями можно несколько снизить её количество, но сама эта попытка приведёт к росту совокупной неразберихи.
Что писать Set = Nothing, что не писать, разницы нет
GSerg писал(а):Причём если пойнтеров на один объект несколько, то ведь прибивание одного из них никогда не приводит к прибиванию объекта (только что проверил). А объект уничтожается только по факту того, что на него больше нет валидных пойнтеров
skiperski писал(а):Таким образом мы уничтожаем все сылки на объекты, а сами объекты остаются живы-живёхоньки, но уже без надежды до них достучаться.
Сейчас этот форум просматривают: AhrefsBot, SemrushBot, Yandex-бот и гости: 3