Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при добавлении записи в таблицу Interbase


Страницы:   1 2

sashag ©   (2003-07-30 09:38:00) 

Ири выполнении "insert into table1 (name) values "aaa""
возникает ошибка
"violation of PRIMARY or UNIQUE KEY constraint "INTEG_13" on table "TABLE1""

Таблица имеет структуру
(id INTEGER NOT NULL,
name CHAR(50),
( id)

Ири выполнении "insert into table1 (name) values "aaa""
возникает ошибка
"violation of PRIMARY or UNIQUE KEY constraint "INTEG_13" on table "TABLE1""

Таблица имеет структуру
(id INTEGER NOT NULL,
name CHAR(50),
PRIMARY KEY(id))
Поле id - автоинкрементное (триггер со счетчиком)

Не могу понять причину этой ошибки. Может, кто встречался с таким?


Соловьев   (2003-07-30 10:14:00) [21]


> ну это смотря какой запрос. просто используя тригеры я в
> свое время столкнулся с некоторыми неудобствами, особенно
> при добавлении данных в гриде

я так работаю - проблем нет. может ты забыл у Field.Required = false;


stud   (2003-07-30 10:14:00) [22]

set generator to значение


stud   (2003-07-30 10:13:00) [23]

Соловьев
а на null зачем проверять?


Smashich   (2003-07-30 10:12:00) [24]

а занчение генератора не может быть установленно на меньшее чем наибольший ид в таблице?


stud   (2003-07-30 10:12:00) [25]

а на дубликаты id проверял? может ты пытаешся добавить существующий id?
просмотри id в таблице и проверь текущее значение генератора


Соловьев   (2003-07-30 10:11:00) [26]

CREATE TRIGGER "TRG_TABLE1" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
( Table1_GEN,1)

CREATE TRIGGER "TRG_TABLE1" FOR "TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(Table1_GEN,1);
END


sashag   (2003-07-30 10:09:00) [27]

Текст триггера

CREATE TRIGGER"TRG_TABLE1" FOR"TABLE1"
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
NEW.ID= GEN_ID(Table1_GEN, 1);
END

Генератор включен.

Запрос делаю с помощью TIBQuery, ... попробовал через ISQL - тот же результат.
Отключил триггер, вставляю запись так, как советовал stud - та же ошибка


stud   (2003-07-30 10:05:00) [28]

ну это смотря какой запрос. просто используя тригеры я в свое время столкнулся с некоторыми неудобствами, особенно при добавлении данных в гриде.
если он выполняет запрос
"insert into table1 (name) values "aaa"", то чем сложнее
"insert into table1 (id,name) values (gen_id(имя_генератора,1),"aaa")
но отпадает головная боль по поводу почему где-то что-то не работает


Соловьев   (2003-07-30 10:01:00) [29]


> если вставка через запрос, зачем еще тригеры плодить?

инетересно , а почему ты решил, что при использовании запросов триггеры не нужны? это никак не связано. кстати, а когда запросы не участвуют при работе с БД?


Соловьев   (2003-07-30 09:57:00) [30]


> sashag © (30.07.03 09:45

покажи текст триггера. а генератор включен?


stud   (2003-07-30 09:57:00) [31]

если вставка через запрос, зачем еще тригеры плодить?


Sergey13   (2003-07-30 09:55:00) [32]

А с генератором никто ничего не делал? И тело тригера посмотреть бы. И откуда запрос идет из твоей программы или какого либо ИБЭксперта?


sashag   (2003-07-30 09:45:00) [33]

-> Соловьев
Триггер на событие BEFORE INSERT


Соловьев   (2003-07-30 09:42:00) [34]


> Поле id - автоинкрементное (триггер со счетчиком)

на какое событие?


stud   (2003-07-30 09:41:00) [35]

сделай так:
"insert into table1 (id,name) values (gen_id(имя_генератора,1),"aaa")
а тригер отключи


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо