4th february

Pascal

Delphi

VCL Components

CLX Components

Glyphs, Icons, Cursors, Videos

Logos

Sample Projects

Tools

Articles, Code Examples, Tips

Links

Code Examples

Creating unique numbering, which one depends on number of quarter and year.
SQL script for InterBase 4.x and higher

create domain dmnQUATER as integer check (value in (1, 2, 3, 4));
create domain dmnINTYEAR as integer check (value > 1998);

create table MY_TABLE
( DOC_NO     integer    not null,
  DOC_QUATER dmnQUATER  not null,
  DOC_YEAR   dmnINTYEAR not null,
);

create generator DOC_NO_GEN;

set term !! ;

create trigger SAMPLE_BEFORE_INSERT_TRIGGER for MY_TABLE
before insert position 0 as
declare variable NewDocNo integer;
begin
  new.DOC_NO = gen_id(DOC_NO_GEN, 1);
  select max (DOC_NO) + 1
  from MY_TABLE a
  where (a.DOC_QUATER = new.DOC_QUATER)
  and (a.DOC_YEAR = new.DOC_YEAR)
    into :NewDocNo;
  if (NewDocNo is null) then
    new.DOC_NO = 1;
  else
    new.DOC_NO = NewDocNo;
end !!