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

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

Ошибка при добавлении записи [D7, IB6.x]


kolos_rus ©   (2004-11-24 15:32:00) 

Имеется тригер и генератор для заполнения ключевого поля в таблице. При добавлении записи выдается ошибка : Поле ID должно иметь значение. Тригер что ли не срабатывает? И как это обойти.


Lenulja   (2004-11-26 17:37:00) [1]

Priwetik! Ljudi pomogite ja pischu w ankete komentarii naschimaju dobawit', a menja vykidiwaet na glawnuju i pischetsja " oschibka dobawlenija Nr.1"


kolos_rus   (2004-11-25 10:23:00) [2]

Спасибо! GeneratorField помог, хотя я всегда считал, что достаточно тригера в базе. Ерунда какая-то.


Rule   (2004-11-25 09:50:00) [3]

В свойствах Датасета есть такое GeneratorField, вот заполни там все, почитай должно быть все понятно


Johnmen   (2004-11-25 09:42:00) [4]

>kolos_rus

А в SELECT'е небось поле ID получаешь ?
Тогда добавь его в инсерт, но не заполняй.


kolos_rus   (2004-11-25 09:02:00) [5]

insert into JURNAL
 (TIME_FIRST, TIME_LAST, TIME_RAB, TIME_INT, SUMMA)
values
 (:TIME_FIRST, :TIME_LAST, :TIME_RAB, :TIME_INT, :SUMMA)


kolos_rus   (2004-11-25 09:01:00) [6]

Скрипт

CREATE GENERATOR GEN1;

CREATE TABLE JURNAL (
   ID          INTEGER NOT NULL,
   TIME_FIRST  TIMESTAMP,
   TIME_LAST   TIMESTAMP,
   TIME_RAB    INTEGER,
   TIME_INT    INTEGER,
   SUMMA       DECIMAL(15,2)
);

/******************************************************************************/
/***                              Primary Keys                              ***/
/******************************************************************************/

ALTER TABLE JURNAL ADD CONSTRAINT PK_JURNAL PRIMARY KEY (ID);

/******************************************************************************/
/***                                Triggers                                ***/
/******************************************************************************/

SET TERM ^ ;

/* Trigger: JURNAL_BI0 */
CREATE TRIGGER JURNAL_BI0 FOR JURNAL
ACTIVE BEFORE INSERT POSITION 0
AS
begin
 /* Trigger text */
 if (new.id is null) then
 new.id = gen_id(gen1,1);
end
^

SET TERM ; ^

Добавление записи из DELPHI в [5]


Rule   (2004-11-24 17:39:00) [7]

код инсетрСКУЭль и скрипт таблицы в базе в студию


kolos_rus   (2004-11-24 16:44:00) [8]

Использую IBDataSet. Описаны поля.
Ibdataset1.append;
ibdataset1first_time.asdatatime:=date;
ibdataset1.post;


Rule   (2004-11-24 16:03:00) [9]

kolos_rus   (24.11.04 15:57) [2]
в твоем наследнике TCustom Field  или в самой базе (смотря де поставил, скорее всего второе)


Johnmen   (2004-11-24 16:02:00) [10]

Свойство TField.
А как вставляешь ?


kolos_rus   (2004-11-24 15:57:00) [11]

Поле в insert не указано. А что это такое Required и где его искать?


Johnmen   (2004-11-24 15:52:00) [12]

Просто не указывать это поле в insert.
Или Required = False


Наверх

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