Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Установить генератор


Mike Kouzmine ©   (2006-07-22 19:14:00) 

У меня часто чистится одна табличка и захотелось мне сбрасывать генератор для пк в 0 после удаления всех записей, но не получилось.
Пишу в триггере set generator vasia to 0 - ошибка мол неизвестный чар на set. Полистал книги (1) полазил по ибэйзру - не нашел. Хотя это и не важно, но просто интересно?


Mike Kouzmine   (2006-07-23 21:26:00) [1]

Спасибо ребят, много информации получил. А то года три в руки шашек не брал. Забыл как ходить. 2006 понравился.


Desdechado   (2006-07-23 13:42:00) [2]

В IB\FB есть только один тип триггеров, срабатывающий (вне зависимости от вызвавшей его команды) на каждую запись.
В Оракле, например, есть больше видов триггеров (даже на системные события типа логина). Например, аналог IB-триггеров явно называется FOR EACH ROW - это строчные триггеры. Есть триггеры табличные, они срабатывают один раз на команду. Например, DELETE FROM tabl вызовет такой триггер один раз (строчный же вызовется для каждой строки).

Какие триггеры есть в скуле, сказать не берусь, не знаю.

Поэтому похоже, что обсуждение тут прошло о разных вещах под общим названием триггеры. Но название - единственное, что объединяет эти понятия.


Anatoly Podgoretsky   (2006-07-23 13:05:00) [3]

Mike Kouzmine ©   (23.07.06 12:28) [13]
Подробности положено приводить, тексты скриптов, запросов, триггеров, образцы записей. Тогда обсуждение будет более конструктивным.


Anatoly Podgoretsky   (2006-07-23 13:04:00) [4]

sniknik ©   (23.07.06 12:25) [12]
Конечно не тебе, мне просто больно от такого ведения дисскуссии.


sniknik   (2006-07-23 13:02:00) [5]

Mike Kouzmine ©   (23.07.06 12:28) [13]
не, я не хочу. я вообще отвечал на [5] а не обсуждал идею. (причем с оговоркой  что это для mssql и возможно скорее всего и для ib тоже)

и потом, в абстрактных обсуждениях участвовать это мазохизм... ;)


Mike Kouzmine   (2006-07-23 12:28:00) [6]

sniknik ©   (23.07.06 12:25) [12] Да я не претендую на обсуждение идеи, которая и мной признана бредовой. Но если хотите...


sniknik   (2006-07-23 12:25:00) [7]

Anatoly Podgoretsky ©   (23.07.06 11:53) [11]
это кому мне?
если мне, то хочу сказать, что тригер срабатывает на команду, а не на запись, поэтому при удалении с клиента по одной записи и срабатываний будет столько же, при общем запросе на удаление с условием на несколько записей, и срабатывание будет одно, что именно удаляется, это уже, вот в этой самой виртуальной таблице deleted надо смотреть.

только вот не уверен в том что тут в ib нет координальных отличий от mssql-я. (хотя с чего бы им быть? вроде это основы)

Mike Kouzmine ©   (23.07.06 11:45) [10]
sniknik ©   (23.07.06 11:34) [8] За раз.
спасибо, я уже тоже пообедал.

p.s. второе предложение из [11] это уж точно к тебе.... ;)


Anatoly Podgoretsky   (2006-07-23 11:53:00) [8]

Ты хочешь сказать, что у меня не будет отрабатывать триггер при удалении каждой записи, в котором например ведется лог удаления, так это не так или ты имеешь в виду, что удаленные за раз записи находятся в deleted.
Какое то абстрактное обсуждение, что то как то удаляется, неизвестно с какими триггерами. Тут поле для фантазирования весьма большое, можно наговорить с три бочки огурцов.


Mike Kouzmine   (2006-07-23 11:45:00) [9]

sniknik ©   (23.07.06 11:34) [8] За раз.


sniknik   (2006-07-23 11:35:00) [10]

> Если триггер ON DELETE то конечно каждый раз.
серьезно? так отличается?


sniknik   (2006-07-23 11:34:00) [11]

а как удаляеш?
по идее не должно, во всяком случае  в mssql так, т.е. если конечно удаление типа while not xxquery.isempty do xxquery.delete; то тогда на каждое удаление сработает, если же запросом "удалить все из таблици" то только раз.
не думаю что в ib в этом плане есть отличия.


Mike Kouzmine   (2006-07-23 11:33:00) [12]

Понятно. Действительно бредовая идея.


Anatoly Podgoretsky   (2006-07-23 11:29:00) [13]

Если триггер ON DELETE то конечно каждый раз.


Mike Kouzmine   (2006-07-23 11:03:00) [14]

только сейчас дошло, что при массовом удолении триггер срабатывает столько раз, сколько записей. Или нет?


Mike Kouzmine   (2006-07-23 11:01:00) [15]

Johnmen ©   (23.07.06 00:41) [3]
Суть - импорт из 1с. Перед импортом все чищу. Для красоты решил на афтерделете поставить обнуление генератора. С ходу не удалось и стало интересно. А при импорте, видимо, лучше сделать пк внутренний номер документа в 1с, если он с новым годом не начинается с 0.

а в тельце только set generator


Johnmen   (2006-07-23 00:41:00) [16]


> Mike Kouzmine ©   (22.07.06 19:14)


Теоретически должно работать. Надо бы посмотреть тельце триггера.
И, кстати, как в триггере узнаётся, что записей нет?
А в целом, такой подход порочен. ИМХО.


Mike Kouzmine   (2006-07-22 22:48:00) [17]

Desdechado ©   (22.07.06 21:03) [1] Спасибо. Почему?


Desdechado   (2006-07-22 21:03:00) [18]

1. Нехорошая мысль - сьрасывать генератор в триггере. Лучше явной отдельной командой (или процедурой, в которой
gen_id(genName, - gen_id(genName,0))


Наверх

Титульная страница Поиск, карта сайта Написать письмо