Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > Проблема с autoincrement


Автор: MrDmitry 20.1.2014, 20:13
Начал писать проект на delphi при попытки выполнить sql код для добавления новой записи(Insert into) delphi выдал мне сообщение FIELD id MUST HAVE A VALUE. По какой то причине id перестал наращиватся. Хотя Тригер и Генератор для autoincrement есть и совсем недавно все было нормально.



Код


CREATE TABLE MACHINE_INFO (
  ID              INTEGER NOT NULL,
  NAME_MACHINE    VARCHAR(60),
  NUMBER_MACHINE  VARCHAR(20),
  TECH_SURV_DATE  DATE,
  COLOR           VARCHAR(20),
  /* Keys */
  PRIMARY KEY (ID)
);

CREATE INDEX MACHINE_INFO_INDEX01
  ON MACHINE_INFO
  (ID);


SET TERM ^ ;

CREATE TRIGGER MACHINE_INFO_BI FOR MACHINE_INFO
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
  NEW.ID = GEN_ID(GEN_MACHINE_INFO_ID,1);
END^

SET TERM ; ^


Скачал в интернете firebird maestro для визуальной работы с базой данных, открыл её и попытался добавить новую запись в "Ручную" к моему удивлению запись добавилась. Но id было null(хотя как видно из приведенного sql примера, id является ключевым полем и не может быть null)

Автор: Akella 21.1.2014, 09:55
Цитата(MrDmitry @  20.1.2014,  20:13 Найти цитируемый пост)
delphi выдал мне сообщение FIELD id MUST HAVE A VALUE

это выдал сервер, а никак не дельфи, ну или твоя программа передала сообщение и опять же от сервера, но никак не дельфи

Добавлено через 1 минуту и 9 секунд
Цитата(MrDmitry @  20.1.2014,  20:13 Найти цитируемый пост)
Скачал в интернете firebird maestro для визуальной работы с базой

очень советую  IBExpert http://forum.vingrad.ru/forum/topic-149469/anchor-entry1121303/0.html

Добавлено через 3 минуты и 32 секунды
Цитата(MrDmitry @  20.1.2014,  20:13 Найти цитируемый пост)
при попытки выполнить sql код для добавления новой записи(Insert into)


немного подожди, и подтянуться телепаты, и сразу отгадают твой sql запрос  smile 

Автор: MrDmitry 23.1.2014, 22:06
sql запрос был стандартный. Обычный insert. Но я уже сам во всем разобрался )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)