Изменение значения генератора.

Запросы, планы, оптимизация запросов, ...

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

john_chek
Сообщения: 28
Зарегистрирован: 24 янв 2007, 12:39

Сообщение john_chek » 16 фев 2007, 16:01

Нет KDV! Чего-то ты меня запутал! Все правильно у меня работает! Запрос на уделение всех записей выполняется, а после этого срабатывает мой триггер (AfterDelete)

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 16 фев 2007, 16:04

Черта с два "после"! Он выполняется столько раз, сколько записей удаляется.

john_chek
Сообщения: 28
Зарегистрирован: 24 янв 2007, 12:39

Сообщение john_chek » 16 фев 2007, 16:07

Ну хорошо, спорить не могу, я же не скрываю, что не спец я! Так что лучше обнулять на клиентской стороне?

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

Сообщение kdv » 16 фев 2007, 16:15

ужос! :D
в принципе, как хочешь. если ты стопудово уверен что вставка и удаление будут монопольными (однопользовательскими), то можешь оставить "обнуление" генератора и в триггере. Но если вдруг случайно удаление и вставка пересекутся, то будут ошибки или глюки.
Последний раз редактировалось kdv 16 фев 2007, 16:23, всего редактировалось 1 раз.

john_chek
Сообщения: 28
Зарегистрирован: 24 янв 2007, 12:39

Сообщение john_chek » 16 фев 2007, 16:18

kdv писал(а):ужос! :D
Куда мне до тебя! =D>

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

Сообщение kdv » 16 фев 2007, 16:24

да я вообще, страшный и ужасный. и голова у меня диаметром 2 метра ...
:) см. дополнение к моему предыдущему ответу.

john_chek
Сообщения: 28
Зарегистрирован: 24 янв 2007, 12:39

Сообщение john_chek » 16 фев 2007, 16:31

Они никак не могут пересечся, т.к. все срабатывает по 1 кнопке: сначало удаление, потом вставка, потом вывод отчета. И отчеты формирует только 1 человек - начальник отдела! Меня больше волнует потеря в скорости, хотя опять таки, ее практически не заметно. Ладно, в любом случае спасибо всем за участие! :)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 16 фев 2007, 18:12

Э-эх. Будущий Проктолог.
Хоть проверку вставь чтоб лишний раз не дёргать

Код: Выделить всё

declare variable I int; 
begin
  if (GEN_ID(gen_sapout_id, 0) > 100000) then
    I = GEN_ID(gen_sapout_id, -GEN_ID(gen_sapout_id, 0));
end

Ответить