RP REPORTTEMPLATE
Материал из GedeminWiki
Версия от 13:56, 27 апреля 2007; 193.232.248.176 (обсуждение)
CREATE TABLE rp_reporttemplate
( id dintkey, name dname, description dtext180, templatedata dreporttemplate, templatetype dtemplatetype, afull dsecurity, achag dsecurity, aview dsecurity, editiondate deditiondate, /* Дата последнего редактирования */ editorkey dintkey, /* Ссылка на пользователя, который редактировал запись*/ reserved dinteger );
ALTER TABLE rp_reporttemplate ADD CONSTRAINT rp_pk_reporttemplate PRIMARY KEY (id);
COMMIT;
CREATE EXCEPTION rp_e_invalidreporttemplate 'Unknown template type';
CREATE UNIQUE INDEX rp_x_reporttemplate_name ON rp_reporttemplate /*COMPUTED BY (UPPER(name));*/ (name);
ALTER TABLE rp_reporttemplate ADD CONSTRAINT rp_fk_reporttemplate_editorkey FOREIGN KEY(editorkey) REFERENCES gd_people(contactkey) ON UPDATE CASCADE;
SET TERM ^ ;
CREATE TRIGGER rp_bi_reporttemplate FOR rp_reporttemplate
BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW.id IS NULL) THEN
NEW.id = GEN_ID(gd_g_unique, 1) + GEN_ID(gd_g_offset, 0);
NEW.templatetype = UPPER(NEW.templatetype);
IF ((NEW.templatetype <> 'RTF') AND (NEW.templatetype <> 'FR') AND
(NEW.templatetype <> 'XFR') AND (NEW.templatetype <> 'GRD')) THEN
EXCEPTION rp_e_invalidreporttemplate;
END
^
CREATE TRIGGER rp_bi_reporttemplate5 FOR rp_reporttemplate
BEFORE INSERT POSITION 5
AS
BEGIN
IF (NEW.editorkey IS NULL) THEN
NEW.editorkey = 650002;
IF (NEW.editiondate IS NULL) THEN
NEW.editiondate = CURRENT_TIMESTAMP;
END
^
CREATE TRIGGER rp_bu_reporttemplate5 FOR rp_reporttemplate
BEFORE UPDATE POSITION 5
AS
BEGIN
IF (NEW.editorkey IS NULL) THEN
NEW.editorkey = 650002;
IF (NEW.editiondate IS NULL) THEN
NEW.editiondate = CURRENT_TIMESTAMP;
END
^
SET TERM ; ^