powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Снова Connection lost to database
11 сообщений из 11, страница 1 из 1
Снова Connection lost to database
    #32435221
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Может кто подскажет в чем собака поковырялась.

Из клиента черех IBX 6.08 динамически формируется SQL запрос вида:

Код: plaintext
1.
delete from table1
where (ID <>  11 ) and (ID <>  12 ) and (ID <>  13 ) ........


Сам компонент тоже создан динамически. Так вот при выполнении этого
запроса Firebird-1.0.3.972-Win32 падает, что и приводит к Connection lost

Попытка выполнить этот запрос на той же базе в IBExpert завершается успешно. База данных ошибок не содержит.

В table1 есть триггер after delete, который делает update table2. Так вот при отключении этого триггера все проскакивает нормально.

Мысль по данному поводу у меня только такая (может конечно глупость скажу): а нет ли в IBX или FB ограничения на длительность выполнения запроса? Но ИМХО сервер то от этого падать не должен :-(

Предупреждая возможные вопросы - никакие UDF, выполнением этого запроса не затрагиваются.

Если у кого есть какие мысли, моргните пожалуйста, в каком направлении копать
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435227
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компоненты доступа тут никоим боком не замешаны (скорее всего).
Приведи весь запрос, на котором падает сервер.
Подозреваю, что запросец ещё тот ...
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435231
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Мимопроходящий
Запрос действительно немаленький, где-то 30-40 а (бывает и более, ведь запрос генерится динамически) конструкций (ID <> XX). Но почему тогда в IBExperte все нормально проскакивает? Где то слышал, что там не IBX компоненты используются.
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435240
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое дополнение

В результате довольно частых экспериментов выявилась тенденция - чем больше записей удаляется (т.е чем меньше ограничение в where) тем больше вероятность падения сервера.

Работаю на локальной машине с локальным сервером

Компоненты IBX на клиенте работают в отдельном потоке (все в одном потоке)
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435241
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой совет :
Код: plaintext
1.
2.
3.
4.
замени
where (ID <>  11 ) and (ID <>  12 ) and (ID <>  13 )
на 
where ID NOT IN( 11 , 12 , 13 ,....)

Компактнее все же, ну и может глючить перестанет ...
Best regards,
Dnico.
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435244
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наложение обстоятельств. Но компоненты тут ни коим боком АднАзнАчнА.
У Хвастунова модифицированная версия FIB (без плюсов).
Те же самые FIB положены в основу IBX.
А вот за запрос такой, в котором около 40 условий "не равно", нужно бить по рукам линейкой. На младших курсах института. Если не поможет, можно бить ногами.
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435245
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНебольшое дополнение
Так триггер скорее всего тормозит ...
Что в тригере написано?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435251
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзай, как советовали:

замени
where (ID <> 11) and (ID <> 12) and (ID <> 13)
на
where ID NOT IN(11,12,13,....)


Только учти ограничение - в списке In(...) должно быть не более 1500 элементов. Между прочим, проверял, работает как раз вплоть до 1500... На FB 1.5, и на select, а не на Delete, правда...
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435256
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Специально для Мимопроходящего оригинальная версия запроса

Код: plaintext
delete from KL_BASES1 where (ID_KLIENT <>  4158 ) and (ID_KLIENT <>  97247 ) and (ID_KLIENT <>  5656 ) and (ID_KLIENT <>  5657 ) and (ID_KLIENT <>  130893 )


Насчет неправильности подхода полностью согласен, но приложение нужно было сделать быстро и работать оно будет от силы раз 100. Если коротко нужно было сделать вырезку из базы по определенным условиям. Так вот вместо того чтобы создать пустую базу и заполнить ее нужными данными я создал полную и отсек все лишнее.

To All
Спасибо всем откликнувшимся и просто посмотревшим топик, к сожалению пробовать варианты будем уже завтра
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435264
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вы ща тут пацану носоветываете...
Михаил, слушай сюда. Если есть время и желание, сбивай условия в кучу и приводи ограничения к > и <. Хоть в 1.5 и значительно улучшили работу конструкции in() , тем не более, она не стала от этого самой оптимальной. Тем не менее-более, что у тебя ещё и FB1.0.3
...
Рейтинг: 0 / 0
Снова Connection lost to database
    #32435265
Михаил К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To Dnico

триггер вроде безобидный:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE TRIGGER KL_BASES1_AD0 FOR KL_BASES1
ACTIVE AFTER DELETE POSITION  0 
AS
begin
    if ((old.id_sertif IS NOT NULL) and (old.id_sertif <>  0 )) then
      update KL_SERTIF set OTGR_OST = OTGR_OST +  1 
      where (ID_KLIENT = old.id_klient) and (ID_SELF = old.id_sertif);
 end


В таблице KL_SERTIF тоже есть триггер на after update, но его отключение уже ситуацию не спасает.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Снова Connection lost to database
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]