powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание автоинкремента для Primary key.
8 сообщений из 8, страница 1 из 1
Создание автоинкремента для Primary key.
    #38892930
ashest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, подскажите, где я дурак!

Создаю таблицу, и primary key:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE table_example
(
    id INTEGER NOT NULL PRIMARY KEY
    data INTEGER
);



Затем генератор и тригер:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE GENERATOR generator_name;
SET TERM ^ ;
CREATE TRIGGER trigger_name FOR table_example ACTIVE
BEFORE INSERT POSITION 1
AS 
BEGIN 
    if (new.id is null ) then
    new.id = gen_id (generator_name, 1);
END^
SET TERM ; ^


открываю получившуюся табличку в Firebird Maestro и создаю новую запись (по идее здесь должен сработать тригер before insert и полю ID присвоится значение автоинкремента) заполняю поле data и пытаюсь сделать post. В результате получаю: Field 'ID' must have a value.

В чем засада?
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892933
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ashest,

здесь никто не пользуется Firebird Maestro
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892947
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ashestВ результате получаю: Field 'ID' must have a value.

В чем засада? Маэстро туп - он думает, что если поле not null, то он обязан проверить это самостоятельно.
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892948
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И тебе не следует им пользоваться. Поэтому выкинь каку и начинай освоение с isql.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892956
ashest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

а без разницы, чем пользоваться. Если к БД обращаться программно, типа так (компонент FireDAC):
Код: pascal
1.
2.
3.
4.
5.
6.
procedure TForm1.Button2Click(Sender: TObject);
begin
 fdtable2.insert;
    fdtable2.FieldByName('data').Value:= 'test';
    fdtable2.post;
end;



Получаю туже ошибку.
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892960
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ashest,

там у филда свойство должно быть в котором отключается проверка на null
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892966
ashest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, спасибо, нашел, все заработало.
...
Рейтинг: 0 / 0
Создание автоинкремента для Primary key.
    #38892974
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ashestвсе заработало.
Это тебе сейчас только кажется. Гы-гы...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Создание автоинкремента для Primary key.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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