права пользователя & вылет клиента при обрыве связи

ЧАстые Вопросы и Ответы

Модераторы: kdv, CyberMax

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 19 апр 2005, 13:25

<=>
Но - обрыв соединения считается нештатной ситуацией. То есть, после него надо закрывать программу и открывать по новой. Потому что закрытие TIBDatabase и его переоткрытие - это фактически то же самое, что и перезапуск приложения.
<=>

Это понятно, но я так и не понял почему в случае остановки сервиса FB и его повторном запуске + полном пересоздании компонентов БД и обращении к БД делфи выдает ошибку потери связи с БД.
КАК ТАК если связей с бд до остановки сервиса компоненты не имели, компонеты ведь абсолютно чистые в плане предыдущих связей с БД.
Что не так?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 19 апр 2005, 13:30

Что не так?
при обрыве соединения некорректно закрывается TIBDatabase. Исходники есть? попробуй в дебаггере наступить на эту ошибку.

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 19 апр 2005, 14:43

Соединение не разрывается чего его разрывать если связи нет (хотя для эксперимента пробывал и такой вариант).
В общем пошаговая схема следующая
1.Соедиенние ок - на клиенте компоненты каждый раз при обращении к БД повторно пересоздаются(сделано для эксперимента чтобы отсечь возможность старых связей) и работают с БД без ошибок.
2.Остановка FB
3.Запуск сервиса FB
4.Пересоздание компонентов ( удалил компоненты - создал компоненты - установил связи между компонентами ), подключение к БД и в итоге Делфи радостно сообщает о потери связи с сервером БД.

При этом пересоздание компонентов в пункте 1 аналогично пункту 4.

По идее если компоненты чистые в плане связей между БД и клиентом в пункте 1 и работает ок то почему в пункте 4 ошибка если алгортим один и тот же.

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 14 май 2005, 12:33

:D
Всем привет.
тема вроде почти померла и идей я смотрю новых нет.
По поводу FIBPlus - штука платная :x - зараза.
Решил использовать клоус айбкуэри после выполнения запроса
и его открытие перед выполнением. Всем кто налетел на подобный баг, советую особо не заморачиваться, а сразу выбирать мой вариант
сэкономите кучу времени и нервов:shock:. А велосипед изобретать не советую.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 14 май 2005, 14:25

тема вроде почти померла и идей я смотрю новых нет.
каких идей???
По поводу FIBPlus - штука платная Mad - зараза.
и ооочень дорогая.
Решил использовать клоус айбкуэри после выполнения запроса
и его открытие перед выполнением. Всем кто налетел на подобный баг,
бред какой то... IBQuery.close/open помог с чем?
и никакого бага тут нет. я ж тебе уже объяснял. Смотри в исходниках IBX КАК IBDatabase закрывает соединение.

Просто у клиентской части нет возможности понять, что соединение оборвалось. Она может это выяснить только при очередном обращении к серверу - то есть, компоненты получат ошибку с сообщением об обрыве. Дальше начинается работа IBDatabase по закрытию всех компонент, к нему привязанных. И вот тут-то...

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 14 май 2005, 15:13

и ооочень дорогая
почему, вроде 10 уе или я ошибаюсь
бред какой то... IBQuery.close/open помог с чем?
и никакого бага тут нет
< == >
IBDataBase.close/open
IBQuery.close/open
в случае закрытия, после обрыва соединение спокойно восставаливается ( повторное соед. ), а про баг немного поторопился

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 14 май 2005, 15:23

почему, вроде 10 уе или я ошибаюсь
ну, если 750 руб для физ-лиц, это 10 уе, то я не знаю, что у вас там за уе.
IBDataBase.close/open
IBQuery.close/open
в случае закрытия, после обрыва соединение спокойно восставаливается ( повторное соед. )
прямо сказка про белого бычка. ясное дело, что при закрытом запросе IBDatabase нормально отрубится при обрыве соединения. Но обычно, как бы, нельзя предсказать, произойдет обрыв связи или нет, и в какой момент. И ради этого тут же закрывать все открытые запросы?

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 14 май 2005, 15:59

kdv писал(а): ну, если 750 руб для физ-лиц, это 10 уе, то я не знаю, что у вас там за уе.
2 евры с курсовым запасом.

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 14 май 2005, 16:01

ну, если 750 руб для физ-лиц, это 10 уе, то я не знаю, что у вас там за уе.
на одном из сайтов была ссылка ( где не помню ) что можно приобрести по такой цене.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 14 май 2005, 16:08

обновление - за половину стоимости. так что ты перепутал.

Konstantin_
Сообщения: 25
Зарегистрирован: 15 апр 2005, 13:45

Сообщение Konstantin_ » 14 май 2005, 17:19

обновление - за половину стоимости. так что ты перепутал.
все ошибаются хотя если бы хотел приобрсти то цену узнал бы точно

Ответить