нужна помощь с New (Set) и Nothing

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Elina
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.09.2006 (Пн) 10:07

нужна помощь с New (Set) и Nothing

Сообщение Elina » 11.02.2007 (Вс) 12:59

добрый день ,
помогите разобратся с Nothing вернее когда его надо делать , всё работает ,но правильно ли
вот например
модуль ,где объявлены переменные связи и функция связи и форма где при нажатии на кнопку вызывает функцию связи 2 раза .Если я правильно понимаю Nothing мне надо делать каждый раз
после вызова функции (в данном примере 2 раза) или можно один раз в unload - но тогда наверное теряются New после первого вызова
модуль
Код: Выделить всё

Public rstConnGenericRecordset As ADODB.Connection
Public strConnectionGenericRecordset As String
Public rstGenericRecordset As ADODB.Recordset

Public Sub OpenDB()
    ........
    Set rstConnGenericRecordset = New ADODB.Connection
   ...
   
    Set rstGenericRecordset = New ADODB.Recordset

    .......
End Sub


форма
Код: Выделить всё

Private Sub cmdOK_Click()

......
Call OpenDB

.....
Set rstConnGenericRecordset = Nothing
Set rstGenericRecordset = Nothing

  If (......) Then
     Call OpenDB
     ........
    Set rstConnGenericRecordset = Nothing
    Set rstGenericRecordset = Nothing
  End If
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.02.2007 (Вс) 16:52

Можно один раз в Unload.
То, что после первого вызова, само очистится при втором Set.

А можно просто забить. Все переменные внутри формы сами очистятся во время её уничтожения (которое обычно, хотя не всегда, совпадает с Unload).
Изображение

Elina
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.09.2006 (Пн) 10:07

Сообщение Elina » 13.02.2007 (Вт) 14:14

не совсем понятно что происходит с объектом который создан при помощи New он наверное "повиснит " если ему не сделать Nothing

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.02.2007 (Вт) 14:25

Нет, если нет циклических ссылок, он сам очистится.
Но лучше все-таки обнулять ссылки вручную.
Lasciate ogni speranza, voi ch'entrate.

Elina
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 04.09.2006 (Пн) 10:07

Сообщение Elina » 14.02.2007 (Ср) 11:32

спасибо за помощь

дополнительно хотелось бы спросить

большое количество Label загружается в loop при помочи Load
надо ли делать Unload или что то вроде этого когда используешь Load

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.02.2007 (Ср) 11:50

Лучше делать, чем не делать
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 14.02.2007 (Ср) 11:51

Не обязательно, при выгрузке формы они тоже выгрузятся.
Но можно выгружать и вручную. Так оно красивше.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 69

    TopList