Subject | Re: [ib-support] Why Firebird AutoIncrement not trigger? |
---|---|
Author | Paul Vinkenoog |
Post date | 2003-05-10T02:43:23Z |
Hello,
and the generator. But they do know (I suppose) that DEPARTMENTID is
PK, so it has to be filled.
Although I haven't used the Borland Interbase components in a long
time, I think two of your options are:
- use an IBQuery instead of an IBTable. Leave DEPARTMENTID out of the
query. Your trigger will take care of the PK.
- use IBTAble (or IBQuery) with DEPARTMENTID. Edit the FieldDefs of
the Table or Query and set faRequired false for field DEPARTMENTID.
Hope this helps.
Greetings,
Paul Vinkenoog
> I'm using Borland 6 & Firebird 1.0 and created a table with threeThat's because the Borland components don't know about your trigger
> fields:
>
> DEPARTMENTID : INTERGER NOT NULL <== P.KEY
> DEPARTMENTCODE : VACHAR(8)
> DEPARTMENTNAME : VACHAR(40)
>
> Where the column special of DEPARTMENTID is set to Create
> AutoIncrement Trigger & Generator as follow:
>
> begin
> if (new.DEPARTMENTID is null)
> then new.DEPARTMENTID = gen_id(DEPARTMENT_GEN, 1);
> end
>
> The problem is when I insert data using the DBgrid, it always
> prompted me to enter the Value of DEPARTMENTID.
> If I don't enter the value for DEPARTMENTID, error occured.
> Until I enter an unique value then I can continue. Why?
and the generator. But they do know (I suppose) that DEPARTMENTID is
PK, so it has to be filled.
Although I haven't used the Borland Interbase components in a long
time, I think two of your options are:
- use an IBQuery instead of an IBTable. Leave DEPARTMENTID out of the
query. Your trigger will take care of the PK.
- use IBTAble (or IBQuery) with DEPARTMENTID. Edit the FieldDefs of
the Table or Query and set faRequired false for field DEPARTMENTID.
Hope this helps.
Greetings,
Paul Vinkenoog