2015-04-23 2 views
1

В VBA, хорошая практика - установить объект Nothing перед объявлением нового экземпляра?Задайте объект Nothing, чтобы создать новый экземпляр объекта?

Например:

Private Sub SetupConn() 

Const Provider As String = "sqloledb" 
Const LanDataSource As String = "127.0.0.1" 
Const WanDataSource As String = "mail.12345678.biz:12345" 

Dim UserName As String 
Dim Password As String 

UserName = "myusername" 
Password = "mypassword" 

Вот где мне интересно, если я должен закрыть соединение или установить его, прежде чем ничего возобновления на новый.

Set mDBconn = New ADODB.Connection 

Select Case mConnMethod 
Case WAN 
    mConnStr = "Provider='" & Provider & ";Data Source=" & WanDataSource _ 
      & ";User ID=" & UserName & ";Password=" & Password 
Case Lan 
    mConnStr = "Provider='" & Provider & ";Data Source=" & LanDataSource _ 
      & ";User ID=" & UserName & ";Password=" & Password 
End Select 
End Sub 

Сценарий является то, что пользователь находится на дороге, используя соединение мобильной сети передачи данных, он приходит в офис и хочет перейти прямо к соединению Wi-Fi высокоскоростной без закрытия и повторного открытия программы. В этом случае то, что я сделал бы, - это установить метод подключения к локальной сети и вызвать этот параметр с параметром сброса.

+0

Не уверен в VBA, но если вы установите переменную с новой ссылкой, старый будет перезаписан и пойман сборщиком мусора, поскольку он больше не используется. –

+0

Это часть причины, по которой я пометил ее ADODB, я не знал, есть ли какой-либо вред, если установить объект на ничего, не закрывая его. –

+0

Тогда лучше подождать того, кто лучше знает модель adodb. Я знаю выше, но я не уверен, поэтому не хочу распространять неправильную информацию. Возьмите его с осторожностью на данный момент. –

ответ

Смежные вопросы