права пользователя & вылет клиента при обрыве связи
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45
<=>
Но - обрыв соединения считается нештатной ситуацией. То есть, после него надо закрывать программу и открывать по новой. Потому что закрытие TIBDatabase и его переоткрытие - это фактически то же самое, что и перезапуск приложения.
<=>
Это понятно, но я так и не понял почему в случае остановки сервиса FB и его повторном запуске + полном пересоздании компонентов БД и обращении к БД делфи выдает ошибку потери связи с БД.
КАК ТАК если связей с бд до остановки сервиса компоненты не имели, компонеты ведь абсолютно чистые в плане предыдущих связей с БД.
Что не так?
Но - обрыв соединения считается нештатной ситуацией. То есть, после него надо закрывать программу и открывать по новой. Потому что закрытие TIBDatabase и его переоткрытие - это фактически то же самое, что и перезапуск приложения.
<=>
Это понятно, но я так и не понял почему в случае остановки сервиса FB и его повторном запуске + полном пересоздании компонентов БД и обращении к БД делфи выдает ошибку потери связи с БД.
КАК ТАК если связей с бд до остановки сервиса компоненты не имели, компонеты ведь абсолютно чистые в плане предыдущих связей с БД.
Что не так?
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45
Соединение не разрывается чего его разрывать если связи нет (хотя для эксперимента пробывал и такой вариант).
В общем пошаговая схема следующая
1.Соедиенние ок - на клиенте компоненты каждый раз при обращении к БД повторно пересоздаются(сделано для эксперимента чтобы отсечь возможность старых связей) и работают с БД без ошибок.
2.Остановка FB
3.Запуск сервиса FB
4.Пересоздание компонентов ( удалил компоненты - создал компоненты - установил связи между компонентами ), подключение к БД и в итоге Делфи радостно сообщает о потери связи с сервером БД.
При этом пересоздание компонентов в пункте 1 аналогично пункту 4.
По идее если компоненты чистые в плане связей между БД и клиентом в пункте 1 и работает ок то почему в пункте 4 ошибка если алгортим один и тот же.
В общем пошаговая схема следующая
1.Соедиенние ок - на клиенте компоненты каждый раз при обращении к БД повторно пересоздаются(сделано для эксперимента чтобы отсечь возможность старых связей) и работают с БД без ошибок.
2.Остановка FB
3.Запуск сервиса FB
4.Пересоздание компонентов ( удалил компоненты - создал компоненты - установил связи между компонентами ), подключение к БД и в итоге Делфи радостно сообщает о потери связи с сервером БД.
При этом пересоздание компонентов в пункте 1 аналогично пункту 4.
По идее если компоненты чистые в плане связей между БД и клиентом в пункте 1 и работает ок то почему в пункте 4 ошибка если алгортим один и тот же.
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45
Всем привет.
тема вроде почти померла и идей я смотрю новых нет.
По поводу FIBPlus - штука платная - зараза.
Решил использовать клоус айбкуэри после выполнения запроса
и его открытие перед выполнением. Всем кто налетел на подобный баг, советую особо не заморачиваться, а сразу выбирать мой вариант
сэкономите кучу времени и нервов:shock:. А велосипед изобретать не советую.
каких идей???тема вроде почти померла и идей я смотрю новых нет.
и ооочень дорогая.По поводу FIBPlus - штука платная Mad - зараза.
бред какой то... IBQuery.close/open помог с чем?Решил использовать клоус айбкуэри после выполнения запроса
и его открытие перед выполнением. Всем кто налетел на подобный баг,
и никакого бага тут нет. я ж тебе уже объяснял. Смотри в исходниках IBX КАК IBDatabase закрывает соединение.
Просто у клиентской части нет возможности понять, что соединение оборвалось. Она может это выяснить только при очередном обращении к серверу - то есть, компоненты получат ошибку с сообщением об обрыве. Дальше начинается работа IBDatabase по закрытию всех компонент, к нему привязанных. И вот тут-то...
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45
ну, если 750 руб для физ-лиц, это 10 уе, то я не знаю, что у вас там за уе.почему, вроде 10 уе или я ошибаюсь
прямо сказка про белого бычка. ясное дело, что при закрытом запросе IBDatabase нормально отрубится при обрыве соединения. Но обычно, как бы, нельзя предсказать, произойдет обрыв связи или нет, и в какой момент. И ради этого тут же закрывать все открытые запросы?IBDataBase.close/open
IBQuery.close/open
в случае закрытия, после обрыва соединение спокойно восставаливается ( повторное соед. )
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45
-
- Сообщения: 25
- Зарегистрирован: 15 апр 2005, 13:45