Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Вниз

Установить генератор   Найти похожие ветки 

 
Mike Kouzmine ©   (2006-07-22 19:14) [0]

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


 
Desdechado ©   (2006-07-22 21:03) [1]

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


 
Mike Kouzmine ©   (2006-07-22 22:48) [2]

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


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


> Mike Kouzmine ©   (22.07.06 19:14)


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


 
Mike Kouzmine ©   (2006-07-23 11:01) [4]

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

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


 
Mike Kouzmine ©   (2006-07-23 11:03) [5]

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


 
Anatoly Podgoretsky ©   (2006-07-23 11:29) [6]

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


 
Mike Kouzmine ©   (2006-07-23 11:33) [7]

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


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

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


 
sniknik ©   (2006-07-23 11:35) [9]

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


 
Mike Kouzmine ©   (2006-07-23 11:45) [10]

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


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

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


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

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] это уж точно к тебе.... ;)


 
Mike Kouzmine ©   (2006-07-23 12:28) [13]

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


 
sniknik ©   (2006-07-23 13:02) [14]

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

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


 
Anatoly Podgoretsky ©   (2006-07-23 13:04) [15]

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


 
Anatoly Podgoretsky ©   (2006-07-23 13:05) [16]

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


 
Desdechado ©   (2006-07-23 13:42) [17]

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

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

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


 
Mike Kouzmine ©   (2006-07-23 21:26) [18]

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.036 c
2-1157282412
Gens
2006-09-03 15:20
2006.09.24
Помогите с реализацией алгоритма


2-1157368943
*Ray*
2006-09-04 15:22
2006.09.24
Запрос SQL


15-1157263685
Новичоккк
2006-09-03 10:08
2006.09.24
Помогите разобраться с сетевыми пакетами


15-1157456068
H010d Freeze
2006-09-05 15:34
2006.09.24
Build проекта из командной строки


15-1157270119
Dbn
2006-09-03 11:55
2006.09.24
E 1,7e что это за числа?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский