DLL Table BSAST:
/* Tabelle: BSAST */
CREATE TABLE BSAST (
ID D_ID,
MASKENKEY D_ALPHA5NOTNULL,
ARBSTBEZ D_ALPHA40NOTNULL,
BKST_ID_KST D_ID,
BLGR_ID_LGR D_ID,
BLOGM_ID_MARBGR D_ID,
BSMT_ID_MASCHTYP D_IDNULL,
RUESTZEIT D_ZAHL4KOMMANULL,
STCKZEIT D_ZAHL4KOMMANULL,
BENUTZER D_BENUTZER,
GESPEICHERT D_GESPEICHERT,
ARBSTBEZ_FL D_ALPHA40NULL COLLATE DE_DE,
PROD_AVG D_ZAHL4KOMMANOTNULL NOT NULL,
"Bemerkung_1" D_ALPHA40NULL COLLATE DE_DE,
"Bemerkung_2" D_ALPHA40NULL COLLATE DE_DE,
"PruefUM" D_YESNONOTNULL NOT NULL COLLATE DE_DE,
"PruefMA" D_YESNONOTNULL NOT NULL COLLATE DE_DE,
"PruefLR" D_YESNONOTNULL NOT NULL COLLATE DE_DE);
/* Primary keys definition */
ALTER TABLE BSAST ADD CONSTRAINT PK_BSAST PRIMARY KEY (ID);
/* Unique keys definition */
ALTER TABLE BSAST ADD CONSTRAINT UK_BSAST UNIQUE (MASKENKEY);
/* Foreign keys definition */
ALTER TABLE BSAST ADD CONSTRAINT REF_BSAST_BKST_KST FOREIGN KEY (BKST_ID_KST) REFERENCES BKST (ID);
ALTER TABLE BSAST ADD CONSTRAINT REF_BSAST_BLGR_LGR FOREIGN KEY (BLGR_ID_LGR) REFERENCES BLGR (ID);
ALTER TABLE BSAST ADD CONSTRAINT REF_BSAST_BLOGM_MARBGR FOREIGN KEY (BLOGM_ID_MARBGR) REFERENCES BLOGM (ID);
ALTER TABLE BSAST ADD CONSTRAINT REF_BSAST_BSMT_MASCHTYP FOREIGN KEY (BSMT_ID_MASCHTYP) REFERENCES BSMT (ID);
SET TERM ^ ;
/* Triggers definition */
/* Trigger: BSAST_AU0 */
CREATE TRIGGER BSAST_AU0 FOR BSAST ACTIVE
AFTER UPDATE POSITION 0
AS
BEGIN
/* LETZTER STAND: 21.02.2003 07:58:41 GK */
/* PROTOKOLLIEREN, DAS AKTION HIER DURCHGELAUFEN IST */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BLGR_AU0');
IF (USER <> 'WORSTCASE') THEN
BEGIN
/* Kettenreaktion in Kalkulation */
IF ((NEW.BLGR_ID_LGR <> OLD.BLGR_ID_LGR) OR (NEW.BKST_ID_KST <> OLD.BKST_ID_KST)) THEN
UPDATE BSAPG SET ID = ID
WHERE BSAST_ID_ARBST = OLD.ID AND BESTJN = 'N';
END
END
^
/* Trigger: BSAST_BI2 */
CREATE TRIGGER BSAST_BI2 FOR BSAST ACTIVE
BEFORE INSERT POSITION 2
AS
BEGIN
/* Letzter Stand 18.11.2004 14:30:50 RW */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BSAST_BI2');
IF ((NEW.ID IS NULL) OR (NEW.ID = 0)) THEN NEW.ID = GEN_ID(GEN_BSAST,1);
NEW.BENUTZER = USER;
NEW.GESPEICHERT = 'NOW';
IF (NEW.BSMT_ID_MASCHTYP = 0) THEN NEW.BSMT_ID_MASCHTYP = NULL;
IF (NEW.BKST_ID_KST = 0) THEN NEW.BKST_ID_KST = NULL;
IF (NEW.BLGR_ID_LGR = 0) THEN NEW.BLGR_ID_LGR = NULL;
IF (NEW.BLOGM_ID_MARBGR = 0) THEN NEW.BLOGM_ID_MARBGR = NULL;
IF (NEW.RUESTZEIT IS NULL) THEN NEW.RUESTZEIT = 0.0;
IF (NEW.STCKZEIT IS NULL) THEN NEW.STCKZEIT = 0.0;
IF (NEW.PROD_AVG IS NULL) THEN NEW.PROD_AVG = 0.0;
END
^
/* Trigger: BSAST_BU0 */
CREATE TRIGGER BSAST_BU0 FOR BSAST ACTIVE
BEFORE UPDATE POSITION 0
AS
BEGIN
/* Letzter Stand 18.11.2004 14:30:30 RW */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('BSAST_BU0');
IF (NEW.GESPEICHERT <> OLD.GESPEICHERT) THEN EXCEPTION KEINE_AENDERUNG;
NEW.BENUTZER = USER;
NEW.GESPEICHERT = 'NOW';
IF (NEW.BSMT_ID_MASCHTYP = 0) THEN NEW.BSMT_ID_MASCHTYP = NULL;
IF (NEW.BKST_ID_KST = 0) THEN NEW.BKST_ID_KST = NULL;
IF (NEW.BLGR_ID_LGR = 0) THEN NEW.BLGR_ID_LGR = NULL;
IF (NEW.BLOGM_ID_MARBGR = 0) THEN NEW.BLOGM_ID_MARBGR = NULL;
IF (NEW.RUESTZEIT IS NULL) THEN NEW.RUESTZEIT = 0.0;
IF (NEW.STCKZEIT IS NULL) THEN NEW.STCKZEIT = 0.0;
IF (NEW.PROD_AVG IS NULL) THEN NEW.PROD_AVG = 0.0;
END
^
SET TERM ; ^
DLL View BSAST
CREATE VIEW V_BSAST (
ID,
MASKENKEY,
ARBSTBEZ,
BKST_ID_KST,
BLGR_ID_LGR,
BLOGM_ID_MARBGR,
BSMT_ID_MASCHTYP,
RUESTZEIT,
STCKZEIT,
PROD_AVG,
BENUTZER,
GESPEICHERT,
"Bemerkung_1",
"Bemerkung_2",
"PruefUM",
"PruefMA",
"PruefLR",
BKST_MASKENKEY,
BKST_KSTBEZ,
BLGR_MASKENKEY,
BLGR_BEZ,
BLGR_LGRF,
BLOGM_MASKENKEY,
BLOGM_G_BEZ,
BLOGM_LOHNGK,
BSMT_MASKENKEY,
BSMT_TYPBEZ)
AS
SELECT A.ID,
A.MASKENKEY,
A.ARBSTBEZ,
A.BKST_ID_KST,
A.BLGR_ID_LGR,
A.BLOGM_ID_MARBGR,
A.BSMT_ID_MASCHTYP,
A.RUESTZEIT,
A.STCKZEIT,
A.PROD_AVG,
A.BENUTZER,
A.GESPEICHERT,
A."Bemerkung_1",
A."Bemerkung_2",
A."PruefUM",
A."PruefMA",
A."PruefLR",
B.MASKENKEY,
B.KSTBEZ,
C.MASKENKEY,
C.BEZ,
C.LGRF,
D.MASKENKEY,
D.G_BEZ,
D.LOHNGK,
E.MASKENKEY,
E.TYPBEZ
FROM BSAST A
LEFT OUTER JOIN BKST B ON A.BKST_ID_KST = B.ID
LEFT OUTER JOIN BLGR C ON A.BLGR_ID_LGR = C.ID
LEFT OUTER JOIN BLOGM D ON A.BLOGM_ID_MARBGR = D.ID
LEFT OUTER JOIN BSMT E ON A.BSMT_ID_MASCHTYP = E.ID
;
Trigger before insert
CREATE TRIGGER V_BSAST_BI0 FOR V_BSAST ACTIVE
BEFORE INSERT POSITION 0
AS
BEGIN
/* Letzter Stand 18.11.2004 15:46:47 RW */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('V_BSAST_BI0');
INSERT INTO BSAST (
GESPEICHERT,
STCKZEIT,
RUESTZEIT,
BSMT_ID_MASCHTYP,
BLOGM_ID_MARBGR,
BLGR_ID_LGR,
BKST_ID_KST,
ID,
ARBSTBEZ,
MASKENKEY,
BENUTZER,
bsast."Bemerkung_1",
bsast."Bemerkung_2",
bsast."PruefLR",
bsast."PruefMA",
bsast."PruefUM")
VALUES (
NEW.GESPEICHERT,
NEW.STCKZEIT,
NEW.RUESTZEIT,
NEW.BSMT_ID_MASCHTYP,
NEW.BLOGM_ID_MARBGR,
NEW.BLGR_ID_LGR,
NEW.BKST_ID_KST,
NEW.ID,
NEW.ARBSTBEZ,
NEW.MASKENKEY,
NEW.BENUTZER,
new."Bemerkung_1",
new."Bemerkung_2",
new."PruefLR",
new."PruefMA",
new."PruefUM");
END
Trigger before update
CREATE TRIGGER V_BSAST_BU0 FOR V_BSAST ACTIVE
BEFORE UPDATE POSITION 0
AS
BEGIN
/* Letzter Stand 18.11.2004 15:46:42 RW */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('V_BSAST_BU0');
UPDATE BSAST
SET GESPEICHERT = NEW.GESPEICHERT,
STCKZEIT = NEW.STCKZEIT,
RUESTZEIT = NEW.RUESTZEIT,
BSMT_ID_MASCHTYP = NEW.BSMT_ID_MASCHTYP,
BLOGM_ID_MARBGR = NEW.BLOGM_ID_MARBGR,
BLGR_ID_LGR = NEW.BLGR_ID_LGR,
BKST_ID_KST = NEW.BKST_ID_KST,
ID = NEW.ID,
ARBSTBEZ = NEW.ARBSTBEZ,
MASKENKEY = NEW.MASKENKEY,
BENUTZER = NEW.BENUTZER,
bsast."Bemerkung_1" = new."Bemerkung_1",
bsast."Bemerkung_2" = new."Bemerkung_2",
bsast."PruefLR" = new."PruefLR",
bsast."PruefMA" = new."PruefMA",
bsast."PruefUM" = new."PruefUM"
WHERE ID = OLD.ID;
END
Insert von A_FELDER
Hoffe das hilft
Gruß
Vegeta