Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Внизтриггер Найти похожие ветки
← →
TAIS (2002-01-02 17:36) [4]Триггер на таблицу OGK.OGK_MODEL
TRIGGER OGK.OGK_TRIGGER
BEFORE INSERT ON OGK.OGK_MODEL
FOR EACH ROW
DECLARE
KOL NUMBER;
MY_EXCEPT EXCEPTION;
BEGIN
SELECT COUNT(*) INTO KOL FROM OGK.OGK_MODEL
WHERE NAME_MODEL =:NEW.NAME_MODEL;
IF KOL>0 THEN RAISE MY_EXCEPT;
END IF;
EXCEPTION
WHEN MY_EXCEPT THEN
RAISE_APPLICATION_ERROR (-20001,"Ошибка уникальности данных! NAME_MODEL="||:NEW.NAME_MODEL);
WHEN OTHERS THEN
Null;
END;
--------------------------------------------
Структура таблицы
CREATE TABLE OGK.OGK_MODEL (
ID_MODEL NUMBER (10) NOT NULL,
NAME_MODEL VARCHAR2 (50))
--------------------------------------------
На кнопке" Новая модель" - процедура:
procedure TForm3.Button7Click(Sender: TObject);
Var
MyQ:TQuery;
begin
MyQ:=TQuery.Create(Nil);
MyQ.DatabaseName:=DataModule2.DbOr.DatabaseName;
MyQ.SQL.Add("SELECT ID_MODEL.nextval ID FROM EMPTY");
MyQ.Active:=True;
DataModule2.QueryStanki.Insert;
DataModule2.QueryStanki.FieldByName("ID_MODEL").AsString
:= MyQ.FieldByName("ID").AsString;
MyQ.Destroy;
DataModule2.QueryStanki.Edit;
DataModule2.QueryStanki.Post;
DataModule2.QueryStanki.ApplyUpdates;
end;
Вставляю дублир. записи - никакой реакции (триггер включен), constraint UNIQUE (NAME_MODEL)- выключен.
Выключаю триггер, включаю constraint- реагирует на дубл. записи!
В студии информации достаточно?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c