Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Как восстановить утеренное подключение mysql


Автор: admsasha 24.8.2011, 09:11
Делаю подключение к mysql базе
Код

      Set DB = New ADODB.Connection
      DB.Open
Всё хорошо работает. 

Но если пропадет связь (между сервером и клиентской частью) , программа выдаст "MySQL server has gone away". Это тоже нормально. Как восстановить теперь подключение ?

пробывал уже даже так
Код

   If DB.State = 1 Then DB.Close
   Set DB = Nothing
   Set DB = New ADODB.Connection
   DB.Open

эффекту не дало 

DB.Execute падает в исключение с сообщением "MySQL server has gone away". Помогает только перезапуск программы.

Автор: DviRUS 24.8.2011, 10:47
А если закрывать подключение после каждой команды и открывать для выполнения новой? Похоже база остаётся открытой при обрыве связи...

Автор: admsasha 24.8.2011, 10:54
Цитата(DviRUS @  24.8.2011,  17:47 Найти цитируемый пост)
А если закрывать подключение после каждой команды и открывать для выполнения новой? Похоже база остаётся открытой при обрыве связи...
 Есть 100 разных функций, создавать 100 подключений к базе ?

Автор: DviRUS 24.8.2011, 11:03
А почему нет? Они же не будут постоянно открыты... Но это как вариант, тормозить будет, но работать.

Автор: admsasha 24.8.2011, 11:21
Интересно, тогда, услышать как правильно это делается ?  Сейчас уже всё  и так работает. Но хочется правильно и рационально. Ведь на тоже подключение тратиться время, ресурсы.

Автор: Akina 24.8.2011, 11:29
Не надо создавать новый коннекшен. Надо переоткрывать существующий.
А если это приводит к падению приложения - то вопорсы к коннектору, а не к VB и не к ADO.

Автор: admsasha 24.8.2011, 12:29
т.е. это делаю единожды
Set DB = New ADODB.Connection

, а потом в процедурах
DB.open
....
DB.close

так ?

Автор: Akina 24.8.2011, 12:37
Цитата(admsasha @  24.8.2011,  13:29 Найти цитируемый пост)
т.е. это делаю единожды
Set DB = New ADODB.Connection

А смысл? почему не сразу Dim DB As New ADODB.Connection?


Автор: admsasha 24.8.2011, 12:43
public DB As New ADODB.Connection ?
Или я всё же чего то не понял ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)