powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер
4 сообщений из 4, страница 1 из 1
Триггер
    #32003235
GRAND
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

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

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

Заранее сэнькс всем, кто ответит.
...
Рейтинг: 0 / 0
Триггер
    #32003262
elint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
видимо это поле NOT NULL. в него надо передать любое значение, например ноль,
а триггер потом сам его перепишет как надо
...
Рейтинг: 0 / 0
Триггер
    #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
Триггер
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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