Закрытие соединения с БД
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
или
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
или это не принципиально с точки зрения освобождения памяти?
Подскажите, плиз, как правильнее закрывать соединение:
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
или
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
или это не принципиально с точки зрения освобождения памяти?
В принципе да, в актульности Close и Nothing до сих пор споры идут, по идее на Nothing должно и закрытие Close происходить, но вероятно тут есть нюансы когда есть разница делать просто Nothing или с Close. В принципе конечно если переменные локально объявлены, то при выходе из функции их сам коммпилятор VBA должен принудительно освобождать, но только ему мало кто доверяет и по правилам хорошего тона принято саму обязательно в конце освобождать через Nothing. Тем более, что и сами программисты Microsoft так все время пишут, так что...
Да, еще на счет Close, с этим методом надо быть осторожным, если объект не был открыт, то Close вызовет ошибку. Поэтому если ты запихнешь rst.Close в кусок:
Ex_:
rst.Close
Set rst=Nothing
Err_:
MsgBox Err.Description
Resume Ex_
то можно получить кучу проблем...
Подскажите, плиз, как правильнее закрывать соединение:
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
или
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
или это не принципиально с точки зрения освобождения памяти?
Споры-то ведутся, но тут итак все уже давно решено! Сначало close потом Nothing, если не лень. Вопрос аккуратности. Главное не делать клоуз после насинга %))) и ВСЕ!