|
|
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, в DML форме есть ввод двух переменных. После того, как их ввели запускается триггер Before insert. Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой. Как лучше поступить в этом случае - либо как-то прописать отключение триггера (Exception), либо не допустить ввод этой переменной ещё до триггера, вставив проверку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:07 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой. триггер не вставляет строки. - не вставляя, это update - в БД нет термина "последняя строка" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:18 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Ok, триггер c before insert создает в таблице новую строку, но если в этой строке есть совпадающие данные с другими строками таблицы по всем полям, кроме ID, нужно, чтобы этой вставки не производилось. Где лучше прописать это условие? В самом триггере, или перед ним? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:23 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Я понимаю логически, что он уже ничего не изменит, потому что стоит before insert, но как в самом Апексе, в форме DML, где пользователь ввел данные не допустить того, чтобы запустилась вставка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 17:26 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412, AFAIK там 3 кнопки - Удалить, Изменить, добавить Вот ими и выбирайте ЧТО именно делать с новой позицией товара. Если польз. Решил вставить 2 карандаша с одним именем, то надо и вставлять. С разным ID. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 18:44 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой. Petro123триггер не вставляет строки. Petro123Вот ими и выбирайте ЧТО именно делать с новой позицией товара . Коллеги, вы решили воспользоваться форумом вместо аськи/скайпа? Один из вас явно знает больше о коде другого, чем это положено обыкновенному обладателю хрустального шара. Я вот, глядя на тему, понятия не имею, вставляет триггер или не вставляет, товар там или расписание сессии... Кода-то в теме нет. Oleg3412Но я не хочу, чтобы триггер вставлял строку, если эти значения дублируются последней строкой. Последней по какому порядку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 20:37 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412но как в самом Апексе, в форме DML, где пользователь ввел данные не допустить того, чтобы запустилась вставка? Вставка двух одинаковых строк? Если как результат отправки пользователем одной и той же страницы на сервер дважды (возврат в истории браузера или обновление страницы), то так: Edit Page->Duplicate Submission->Allow duplicate page submissions=No. Но лучше опишите задачу, которую решаете. Может, и не нужны Вам никакие триггеры. PS: Советую прочитать . Вместе с ссылками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 20:49 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Нет, я не две строки вставляю, я хочу, когда пользователь нажимал кнопку "Создать" в DML - отчете, если он вводил такоже последнее значение суммы договора, ему бы выкидывалось сообщение, что такое значение сейчас уже стоит и триггер не выполнялся. Нужно в кнопке повозиться, чтобы шла проверка для запуска или незапуска триггера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 22:34 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412, RTFM Oracle® Application Express Application Builder User's Guide: 10.1.5 Validating User Input in Forms . Добавьте валидацию с соответствующим сообщением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.10.2014, 23:51 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412, Еще немного из хрустального шара Погуглите по: constraint unique constraint unique deferrable novalidate unique function based index + чтобы вывести сообщение: STFG apex error handling unique constraint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 09:19 |
|
||
|
Остановить триггер или не допустить ввод ненужных данных?
|
|||
|---|---|---|---|
|
#18+
Oleg3412если он вводил такоже последнее значение суммы договора а он что, дурак, одно и то-же по сто раз вводить? Или ты ему не показал у кнопок всю инфу? Приведи наконец схему БД или скрины. ЗЫ. Если гадать, то посмотри этот форум и функционал: "Не заводите вопросы дважды" )) Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2014, 09:42 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=38791249&tid=1875202]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 411ms |

| 0 / 0 |
