Совет: как "правильно" проверять коннект к БД от к
Совет: как "правильно" проверять коннект к БД от к
Приветствую!
как более правильно в клиентском приложении (Delphi 7) проверять коннект к БД для того что бы например при отвале связи приложение в exception не падало? я периодически использую два варианта:
1. try... except в IBQuery.open
2. IbDatabase.connected
поделитесь плиз опытом кто как делает?
как более правильно в клиентском приложении (Delphi 7) проверять коннект к БД для того что бы например при отвале связи приложение в exception не падало? я периодически использую два варианта:
1. try... except в IBQuery.open
2. IbDatabase.connected
поделитесь плиз опытом кто как делает?
В IBX нет полноценной реализации обработки потери соединения. В FIB+ она сделана через компоненту базы данных. То есть при потере соединения возникает соответствующее событие у TpFIBDatabase, а программист уже задает реакцию: закрыть приложение, закрыть коннект, игнорировать либо ждать восстановления).
Ага, при выполнении каждого запроса подчепляться?ud писал(а): лучше не держать открытое соединение постоянно.
запустил приложение - записал логин и пароль в переменные и подключаешься когда необходимо
неееее, отвергаю
я уж лучше перед выполнением запроса проверять IbDatabase.connected буду или обработчик на Application.onIdle приложения напишу
и на кой вообще это записывать, ежели это в параметрах IbDatabase
лежит?
Дело в том, что постоянно делать try...except и проверять на Connected - пустая трата сил и кода. Лучше уж в Application.OnException повесить обработку исключения потери соединения и закрывать приложение. Большего на IBX сделать не получится.
P.S. Можно операторам рассказать про Ctrl-Alt-Delete и "Снять задачу"...
P.S. Можно операторам рассказать про Ctrl-Alt-Delete и "Снять задачу"...
-
- Сообщения: 144
- Зарегистрирован: 16 фев 2006, 22:36
Добрый день!
Недавно в конференции Google давали ссылку на модификацию IBX 6.08
Олега Пащенко (http://www.ov-soft.com ), которая позволяет корректно обрабатывать
потерю соединения. Испытал в домашних условиях - да, действительно, приложение в этом случае закрыть можно
Делалось следующее:
1) на FB 1.5.3 Classic вручную убивался процесс - в
этом случае есть небольшая утечка памяти, но и она исправима.
2) Дома установлен особенный Firewall, который аккуратно и молчаливо режет коннекты c localhost ~ через 20 минут - в этом случае утечек памяти не было.
Вдобавок в компонентах добавлена еще одна вкусность (еще не пробовал) - отдельная пишущая транзакция для datasets.
Думаю, Вы можете попробовать посмотреть компоненты и применить исправления к Вашему IBX
Недавно в конференции Google давали ссылку на модификацию IBX 6.08
Олега Пащенко (http://www.ov-soft.com ), которая позволяет корректно обрабатывать
потерю соединения. Испытал в домашних условиях - да, действительно, приложение в этом случае закрыть можно
Делалось следующее:
1) на FB 1.5.3 Classic вручную убивался процесс - в
этом случае есть небольшая утечка памяти, но и она исправима.
2) Дома установлен особенный Firewall, который аккуратно и молчаливо режет коннекты c localhost ~ через 20 минут - в этом случае утечек памяти не было.
Вдобавок в компонентах добавлена еще одна вкусность (еще не пробовал) - отдельная пишущая транзакция для datasets.
Думаю, Вы можете попробовать посмотреть компоненты и применить исправления к Вашему IBX
Все это давным-давно есть в FIB+, впрочем, кому что нравится.Кузнецов Евгений писал(а):Добрый день!
Недавно в конференции Google давали ссылку на модификацию IBX 6.08
Олега Пащенко (http://www.ov-soft.com ), которая позволяет корректно обрабатывать
потерю соединения. Испытал в домашних условиях - да, действительно, приложение в этом случае закрыть можно
Делалось следующее:
1) на FB 1.5.3 Classic вручную убивался процесс - в
этом случае есть небольшая утечка памяти, но и она исправима.
2) Дома установлен особенный Firewall, который аккуратно и молчаливо режет коннекты c localhost ~ через 20 минут - в этом случае утечек памяти не было.
Вдобавок в компонентах добавлена еще одна вкусность (еще не пробовал) - отдельная пишущая транзакция для datasets.
Думаю, Вы можете попробовать посмотреть компоненты и применить исправления к Вашему IBX