|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.06.2015, 09:21 | #1 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 61
|
рано срабатывает триггер
Здравствуйте. Возникла проблема по работе триггера. При добавлении данных в форму и занесении их в БД, триггер должен проверять данные на соответствие определенным условиям и вносить изменения во вторую таблицу БД. Использую обработку события на insert. Тут вроде все ясно. НО: В форме ввода данных при добавлении новой информации она сохраняется дважды - сначала по кнопке "Сохранить", а потом "Подтвердить". И получается, что уже при нажатии на кнопку "Сохранить" начинает работать триггер, и когда я пытаюсь подтвердить внесенную информацию, программа выдает ошибку (см.скрин). Как в данном случае можно поступить?
|
05.06.2015, 09:29 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
И что, дважды INSERT? А если 1-ый раз INSERT, а 2-ой UPDATE, то триггер на insert не при делах
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
05.06.2015, 09:58 | #3 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 61
|
вставляется только одна запись, но если не подтвердить, она не сохраняется в таблице. меняла insert на update - треггер не работает, не видит изменения данных, все-таки это добавление новой записи, не изменение старых. Попробовав сделать на самом деле обновление данных, выдал ту же ошибку, что и при добавлении новых
|
05.06.2015, 10:11 | #4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
|
05.06.2015, 11:21 | #5 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 61
|
думаю, что да. судя по ошибке AZI6 получается, что сначала, когда идет ввод данных в окно формы, происходит одна транзакция при обращении к БД, триггер запускает вторую транзакцию и из-за их конфликта происходит прерывание сохранения. может как-то можно отследить транзакцию сохранения и поставить выполнение триггера на задержку? возможен такой вариант?
|
05.06.2015, 12:20 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Гадать не буду, нужно точно знать что и как делается, начинку триггера и прочее
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
05.06.2015, 12:42 | #7 |
Пользователь
Регистрация: 14.11.2007
Сообщений: 61
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рано умирает сессия | CodeNOT | ASP.NET | 0 | 13.03.2015 12:53 |
Триггер 2 | @ngel111 | SQL, базы данных | 0 | 24.12.2014 18:52 |
Триггер | @ngel111 | SQL, базы данных | 2 | 23.12.2014 14:57 |
Триггер | andresan | SQL, базы данных | 0 | 16.05.2011 16:29 |
триггер | veter_s_morya | SQL, базы данных | 10 | 06.10.2008 21:58 |