Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3

Когда был вызван триггер и где он располагается в логической схеме?

27.02.2015, 23:03. Показов 1845. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.

В течение полугода задавался вопросом что такое "триггер", но все никак руки не доходили поискать/погуглить.

Все, что я понял из литературы в интернете, что триггер - хранимая процедура, своего рода подпрограмма на PL/SQL, которая вызывается при изменении таблицы базы данных.

Дальше мое понимание о триггерах оставляет желать лучшего.

Приведу пример,
--у меня открыта какая-нибудь таблица в БД, конкретно рассматривается Access.
--И хочу ввести некоторые коррективы в какой-нибудь из кортежей.
--Что делаю я - я просто стираю backspace'ом не нужные слова и печатаю другое,
--затем добавляю новый кортеж.
-- И после жму Сохранить.

А теперь вопрос -

--когда был вызван триггер и где он вообще располагается в логической схеме? (есть мнение что он где-то в концептуальном уровне).
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.02.2015, 23:03
Ответы с готовыми решениями:

Триггер, вызывающий процедуру, в которой выполняется select к этой таблице (откуда был вызван триггер)
есть тригерр create or replace trigger quickstart.quickstart.ACRIONS_COMMIT_TR after update on quickstart.actions for each...

Открытие попап там, откуда он был вызван
Доброе утро! проблема с открытием попап под той ссылкой, откуда попап был вызван. сейчас он открывается по центру всегда. Нужно чтоб он...

Как узнать откуда был вызван метод?
У меня после распознавания речи вызывается метод onActivityResult(). В нём речь преобразуется в String. После этого в зависимости откуда...

20
 Аватар для Андрэич
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
28.02.2015, 03:31
Примерно да. Например, они запоминают все сделанные к(в) базе запросы: запросы на изменение (Update, Insert...). В Аксессе (без SQL-сервера) их нет. Но умельцы делают: Злоумышленник. - Триггер Бенедикта. :-)

Добавлено через 9 минут
В Аксессе их нет
Ну, если не считать "вшитые", которые выдают сообщения типа: "Будет изменено (удалено) n записей. Продолжить?"
1
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 11:58
Цитата Сообщение от Supernatural Посмотреть сообщение
Дальше мое понимание о триггерах оставляет желать лучшего.
Все просто. Для понимания "что такое ТРИГЕР" самый простой пример привожу - вам нужно чтобы в базе пользователь вводил текст заглавными буквами, а он козел иногда вводит маленькими. Так вот вам это надоело над душой у него стоять и контролировать и вы решили атоматизировать - написали триггер, который любой текст преобразует в заглавные. В общем тригер поззволяет работать с таблицами при из заполнении\изменении.
Цитата Сообщение от Supernatural Посмотреть сообщение
и где он вообще располагается в логической схеме?
access вообще работает с тригерами? я не уверен, ведь это не полноценная база
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
28.02.2015, 12:08
Цитата Сообщение от Серж_87 Посмотреть сообщение
...поззволяет работать с таблицами...
Крайне возмущён.
Работать нужно только с формами, а не с таблицами.
Зачем маленьких Плохому учите?
По себе знаю. потом очень долго перестраиваться придется.
Ле-Ле-Ле
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 12:10
kmv-puh, так работая с формами в итоге работаешь с таблицами же ) Я не о том, что напрямую вводить данные в таблицу, а в целом что тригер работает именно с таблицами
0
 Аватар для VinniPuh
9131 / 6143 / 593
Регистрация: 27.03.2013
Сообщений: 20,011
28.02.2015, 12:23
Ну извиняюсь, видимо не на столько глубоко просекаю ситуацию.
Кликните здесь для просмотра всего текста
Обычно приучен к конкретным терминам, а не полувиртуальным, я обычно в подсознательные астралы и менталы ленюсь лезть, типа по жизни немного лентяй.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
28.02.2015, 12:25
Вообще то некий аналог триггеров уже в 2010 есть - это макросы данных. Наиболее полное описание, которое мне попадалось, в "Access 2010 Programmer's Reference", глава 4.
1
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
28.02.2015, 13:11  [ТС]
то есть триггер сам по себе срабатывает при работе с таблицами и формами, а как случай с запросами?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
28.02.2015, 13:19
Триггер срабатывает при удалении, добавлении, изменении записи в таблице. А вот как она удаляется, добавляется, изменяется: в таблице, в форме, в запросе или запросом, в наборе данных, ... - ему все равно.
1
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
28.02.2015, 14:35  [ТС]
ага значит, триггер срабатывает при непосредственной работе с самой таблицей, в случае с запросом он ничего не делает. Хорошо, а в аксесе есть сервис на написанию своего триггера? И как он хранится? В списке с запросами, таблицами, отчетами и формами?
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 14:40
Цитата Сообщение от Supernatural Посмотреть сообщение
ага значит, триггер срабатывает при непосредственной работе с самой таблицей, в случае с запросом он ничего не делает
Сколько тебе еще говорить, тригеру пофиг каким способом добавляется/изменяется значение в таблице. Если запрос на выборку (селект) то естественное изменения в таблице не будет и тригеру не на что реагировать

Добавлено через 1 минуту
Цитата Сообщение от Supernatural Посмотреть сообщение
Хорошо, а в аксесе есть сервис на написанию своего триггера?
как написал ltv_1953, в 2010 вроде как есть. Я лично не слышал чтобы в аксесе был тригер
0
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
28.02.2015, 14:53  [ТС]
Серж_87, значит не важно как изменяется таблица/форма, он все равно сработает. А вообще триггер является промежуточным уровнем между пользователем и таблицей БД? Как бы пользователь неявно изменяет кортежи в БД, за него на внутреннем уровне это делает триггер, верно? Что вообще в таком случае триггер обеспечивает? И можно ли без него работать в других СУБД?
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 15:27
Цитата Сообщение от Supernatural Посмотреть сообщение
И можно ли без него работать в других СУБД?
В любой нормальной базе не обойтись без тригера. например пользователь заполняет данные в одну таблицу и для целостности базы необходимо менять данные в другой таблице. Работать без него конечно можно, это как защита/подстраховка для ненарушения целостности базы
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
28.02.2015, 15:36
Цитата Сообщение от Серж_87 Посмотреть сообщение
В любой нормальной базе не обойтись без тригера
Не буду настаивать, но мое мнение ровно противоположное: если в БД требуется триггер, значит либо БД не нормализована, либо интерфейс не соответствует структуре данных.

Впрочем, есть одна ситуация когда триггера ничему не противоречат. Это логирование ввода и ошибок. Тут их применение безусловно полезно.
1
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 15:40
mobile, в целом вы правы. Я сейчас имею ввиду не базу аксес где 10-20 табличек, а базу крупной компании, которую разрабатывают и дорабатывают годами. Невозможно при создании БД учесть все мелочи, и выявленных касяки лечатся тригерами, это вполне нормально
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
28.02.2015, 16:07
Цитата Сообщение от Серж_87 Посмотреть сообщение
не базу аксес где 10-20 табличек
В самой большой БД, которую я создавал, 430 таблиц, 705 запросов, 181 форма, 59 отчетов и 126 модулей. Не надо приписывать аксу невозможное, но и не надо делать из него детскую игрушку. При всех своих недостатках, он многое может.
0
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 16:14
mobile, при всем моем уважении к аксес, это больше инструмент для обработки данных, но не СУБД. Какой смысл компании иметь базу на аксесе с ограниченными возможностями (как размер так и функционал), если существуют полноценные бесплатные базы - MySQL, Firebird и т.д.
Да, он прост, можно с коленки набросать за 15 мин нужный инструмент или БД, но минусов у него куча
0
619 / 218 / 51
Регистрация: 22.11.2010
Сообщений: 1,781
Записей в блоге: 3
28.02.2015, 16:20  [ТС]
Хочу расставить точки. Если я работаю в аксесе с таблицей/формой БД, то я явно работаю с данными таблицы, напрямую. Но если я зайду в другую СУБД, то там явно не поработаю с данными таблиц БД, после моих изменений (UPDATE, INSERT, DELETE) вызывается триггер и выполняет уже изменения на внутреннем уровне. Все верно?
0
Эксперт MS Access
26827 / 14507 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
28.02.2015, 16:21
Цитата Сообщение от Серж_87 Посмотреть сообщение
но минусов у него куча
Затевать еще один, по моему глубокому убеждению, бессмысленный спор на тему кто сильнее кит или слон, я не собираюсь. В сети Вы найдете сотни таких: Access vs MySql, Access vs FoxPro и прочая, и прочая.
Я создаю в аксе нужные людям программы, которые работают годами и даже десятками лет. Этого мне достаточно, чтобы считать MS Access полноценным инструментом.
3
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
28.02.2015, 16:24
Цитата Сообщение от Supernatural Посмотреть сообщение
после моих изменений (UPDATE, INSERT, DELETE) вызывается триггер и выполняет уже изменения на внутреннем уровне. Все верно?
Да
mobile, согласен
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2015, 16:24
Помогаю со студенческими работами здесь

Как в отладке выяснить, откуда был вызван метод
Ребят как узнать откуда был вызван метод? К примеру ставлю точку останова на метод onCreate во фрагменте и вижу что он вызывается 2 раза...

Когда будет вызван Dispose
Иногда вижу в коде вот такую конструкцию public SomeObject GetObject() { using(obj) { return new...

Как узнать чем (каким Event) был вызван метод
Можно ли как-то узнать, каким Event ом или из какого класса был вызван метод?

Можно узнать на каком элементе был вызван метод connect ?
Здравствуйте. При вызове метода connect() в вызываемой функции можно узнать на каком элементе было событие ? То-есть: ...

Какова вероятность того, что отвечать был вызван мальчик?
3. В классе обучаются 20 девочек и 10 мальчиков. К уроку не выполнили домашнее задание 4 девочки и 3 мальчика. Наудачу вызванный ученик...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru