Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер / 4 сообщений из 4, страница 1 из 1
19.03.2001, 16:30
    #32003235
GRAND
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
Привет всем!

Подскажите плиз в такой трабле. Поставил на таблицу триггер, чтобы вел счетчик записей
(обычный, как описано в документации). При использовании ISQL новая запись вставляется
без проблем и задания значения первичного ключа (оно назначается само, т.е. триггер ра-
ботает). Из-под Дельфей если не задать значение этого поля, выдается Exception: "Field
<...> must have a value".

Почему тригер не работает? Ведь должен, какая разница, из-под откуда добавлять запись.
Триггер работает на BEFORE INSERT и использует генератор.

Заранее сэнькс всем, кто ответит.
...
Рейтинг: 0 / 0
20.03.2001, 12:15
    #32003262
elint
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
видимо это поле NOT NULL. в него надо передать любое значение, например ноль,
а триггер потом сам его перепишет как надо
...
Рейтинг: 0 / 0
20.03.2001, 12:28
    #32003263
MIKLUHA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
В приложениях Delphi обычно для этих целей используется компонент TStoredProc на хранимую процедуру или TQuery, возвращающую gen_id(имя_генератора, 1). Затем на OnNewRecord компонента TTable(TDataSet) ручками пишется: Поля_Первичного_Ключа.Value := Stored_Proc.ParamByName(Имя_Параметра).Value.

Можно еще посмотреть
http://www.ibphoenix.com/ibp_interbase_control.html#6
...
Рейтинг: 0 / 0
20.03.2001, 15:53
    #32003283
engeneer2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер
>В приложениях Delphi обычно для этих целей используется компонент TStoredProc на хранимую процедуру или TQuery, возвращающую gen_id(имя_генератора, >1). Затем на OnNewRecord компонента TTable(TDataSet) ручками пишется: Поля_Первичного_Ключа.Value := Stored_Proc.ParamByName(Имя_Параметра).Value.
1)никогда!!!! вот так не делай при работе нескольких пользователей это крах.
2)Нуль передавать это тоже плохо ведь как написан триггер before insert наверняка если значение null тогда-генератор, иначе само значение
3)Твоя проблема решается в 2 шелчка мышью: У таблицы у автонкрементного поля(на котором счетчик) поставить в свойствах Required:=false в инспекторе объектов.
Удачи
Я здесь редко. Если что-пиши engeneer2000@rambler.ru или в forum.cps.ru в cps.inprice.ibdatabase или в cps.inprice.delphi
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]