Страница 1 из 1

Совет: как "правильно" проверять коннект к БД от к

Добавлено: 02 ноя 2006, 16:47
andycat
Приветствую!

как более правильно в клиентском приложении (Delphi 7) проверять коннект к БД для того что бы например при отвале связи приложение в exception не падало? я периодически использую два варианта:

1. try... except в IBQuery.open
2. IbDatabase.connected

поделитесь плиз опытом кто как делает?

Добавлено: 03 ноя 2006, 11:04
CyberMax
В IBX нет полноценной реализации обработки потери соединения. В FIB+ она сделана через компоненту базы данных. То есть при потере соединения возникает соответствующее событие у TpFIBDatabase, а программист уже задает реакцию: закрыть приложение, закрыть коннект, игнорировать либо ждать восстановления).

Добавлено: 03 ноя 2006, 12:27
andycat
тогда подскажите плиз как более грамотно сделать эту обработку разрыва соединения в IBX?

Добавлено: 04 ноя 2006, 11:11
ud
лучше не держать открытое соединение постоянно.
запустил приложение - записал логин и пароль в переменные и подключаешься когда необходимо ;)

Добавлено: 04 ноя 2006, 12:27
stix-s
ud писал(а): лучше не держать открытое соединение постоянно.
запустил приложение - записал логин и пароль в переменные и подключаешься когда необходимо ;)
Ага, при выполнении каждого запроса подчепляться?
неееее, отвергаю :)
я уж лучше перед выполнением запроса проверять IbDatabase.connected буду :) или обработчик на Application.onIdle приложения напишу :)
и на кой вообще это записывать, ежели это в параметрах IbDatabase
лежит? :)

Добавлено: 04 ноя 2006, 15:40
CyberMax
Дело в том, что постоянно делать try...except и проверять на Connected - пустая трата сил и кода. Лучше уж в Application.OnException повесить обработку исключения потери соединения и закрывать приложение. Большего на IBX сделать не получится.
P.S. Можно операторам рассказать про Ctrl-Alt-Delete и "Снять задачу"...

Добавлено: 15 ноя 2006, 18:57
Кузнецов Евгений
Добрый день!

Недавно в конференции Google давали ссылку на модификацию IBX 6.08
Олега Пащенко (http://www.ov-soft.com ), которая позволяет корректно обрабатывать
потерю соединения. Испытал в домашних условиях - да, действительно, приложение в этом случае закрыть можно

Делалось следующее:
1) на FB 1.5.3 Classic вручную убивался процесс - в
этом случае есть небольшая утечка памяти, но и она исправима.

2) Дома установлен особенный Firewall, который аккуратно и молчаливо режет коннекты c localhost ~ через 20 минут - в этом случае утечек памяти не было.

Вдобавок в компонентах добавлена еще одна вкусность (еще не пробовал) - отдельная пишущая транзакция для datasets.

Думаю, Вы можете попробовать посмотреть компоненты и применить исправления к Вашему IBX

Добавлено: 16 ноя 2006, 06:01
stix-s
Кузнецов Евгений писал(а):Добрый день!

Недавно в конференции Google давали ссылку на модификацию IBX 6.08
Олега Пащенко (http://www.ov-soft.com ), которая позволяет корректно обрабатывать
потерю соединения. Испытал в домашних условиях - да, действительно, приложение в этом случае закрыть можно

Делалось следующее:
1) на FB 1.5.3 Classic вручную убивался процесс - в
этом случае есть небольшая утечка памяти, но и она исправима.

2) Дома установлен особенный Firewall, который аккуратно и молчаливо режет коннекты c localhost ~ через 20 минут - в этом случае утечек памяти не было.

Вдобавок в компонентах добавлена еще одна вкусность (еще не пробовал) - отдельная пишущая транзакция для datasets.

Думаю, Вы можете попробовать посмотреть компоненты и применить исправления к Вашему IBX
Все это давным-давно есть в FIB+, впрочем, кому что нравится.