Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / primary key / 3 сообщений из 3, страница 1 из 1
03.08.2003, 12:45
    #32225802
zDIV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
primary key
Помогите новичку... Если INTEGER primary key заполняется в тригере от генератора, то его нельзя задавать из клиента, тригер все равно его меняет. Принципиально так ли это? (мне необходимо "и так - и так" - по умолчанию и из ХП получаю ID и вручную заношу при INSERT, чтобы знать ID на клиенте для целого ряда действий (других вставок). Работаю через ADO. Не получается... Принципиально так ли это? Я почему то считал, что логично было бы при вставке серверу выполнять... ага... скорее всего так и есть.

Неужели единственный выход только через INSERT в ХП, которая и возвратит ID (нехочется раздувать скрипт с большим списком полей, да и вот неоправданная досада - нельзя использовать домены при объявлении ХП (ПОЧЕМУ!!!???) - в моем случае крайне утомительно создавать аккуратные домены для полей, а в ХП снова опускаться)? Хотя, если в тригере проверять ID на NULL и подключать генератор только при NULL (или при DEFAULT, если ID объявлен с DEFAULT). Вот что значит общение, даже попытка...
...
Рейтинг: 0 / 0
03.08.2003, 13:39
    #32225816
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
primary key
точно в триггере проверять на null
сам себе ответил :)
...
Рейтинг: 0 / 0
04.08.2003, 10:12
    #32226020
koff4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
primary key
Вот пример из "Мир Interbase".

Create trigger Table_example_bi
active before inset position 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_TABLE_EXAMPLE_ID,1);
END

...или в FB1.5 можно более модно

...
NEW.ID=COALESCE(NEW.ID,GEN_ID(GEN_TABLE_EXAMPLE_ID,1));
...

Работает все железно!!!
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / primary key / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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