Eingabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
DESTSNID |
INTEGER |
Primary Key Wert von der SENDUNGEN Tabelle |
DESTSEPOSITION |
INTEGER |
Die Position vom Ziel-Sendeelement. |
POSOFFSET |
INTEGER |
Positiver oder negativer Position-Offset. |
SESEQUENZ |
CHAR(1) |
Sequenz-Ablauf |
SEGRUPPE |
CHAR(1) |
Gruppe vom Sendeelement |
SEDAUER |
INTEGER |
Spielzeit (Dauer) [ms] des Elementes |
SETYP |
CHAR(2) |
Typ vom Sendeelement |
SETITELTHEMA |
CHAR(80) |
Titel / Thema |
SEINTERPRET |
CHAR(80) |
Interpret oder Art |
SEAUTOR |
CHAR(80) |
Autor des Titel / Themas |
SEERSTELLDATUM |
DATE |
Datum der Erstellung des Eintrages |
SEERSTELLER |
CHAR(20) |
Ersteller (Benutzer) des Eintrages |
Ausgabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
RETSEID |
INTEGER |
Primary Key Wert von der SENDEELEMENTE Tabelle |
RETSEPOSITION |
INTEGER |
Die Position vom eingefügten Sendeelement. |
Beschreibung
Damit kann ein Sendeelement eingefügt werden.
Es wird geprüft, dass nichts zwischen geklammerte Elemente eingefügt wird.
Definition
CREATE PROCEDURE SE_INSERT(
DESTSNID INTEGER,
DESTSEPOSITION INTEGER,
POSOFFSET INTEGER,
SESEQUENZ CHAR(1),
SEGRUPPE CHAR(1),
SEDAUER INTEGER,
SETYP CHAR(2),
SETITELTHEMA CHAR(80),
SEINTERPRET CHAR(80),
SEAUTOR CHAR(80),
SEERSTELLDATUM DATE,
SEERSTELLER CHAR(20))
RETURNS (
RETSEID INTEGER,
RETSEPOSITION INTEGER)
AS
DECLARE VARIABLE PosType INTEGER;
DECLARE VARIABLE NewSeId INTEGER;
DECLARE VARIABLE NewSeSnId INTEGER;
DECLARE VARIABLE NewSeDatum DATE;
DECLARE VARIABLE NewSeZeit INTEGER;
DECLARE VARIABLE NewSeSpPosition INTEGER;
DECLARE VARIABLE NewSeSnPosition INTEGER;
DECLARE VARIABLE NewSePosition INTEGER;
DECLARE VARIABLE NextSePosition INTEGER;
DECLARE VARIABLE SeId INTEGER;
DECLARE VARIABLE SeSnId INTEGER;
DECLARE VARIABLE SeDatum DATE;
DECLARE VARIABLE SeSpPosition INTEGER;
DECLARE VARIABLE SeSnPosition INTEGER;
DECLARE VARIABLE SePosition INTEGER;
DECLARE VARIABLE SeZeit INTEGER;
DECLARE VARIABLE SeRegion SMALLINT;
BEGIN
/* Genaue Ziel-Position festlegen (Vor/Nach Klammerung) */
IF (PosOffset >= 0) THEN PosType = 0;
ELSE PosType = 1;
EXECUTE PROCEDURE SE_GETBLOCKPOS (DestSnId, DestSePosition, PosType)
RETURNING_VALUES (NewSeId,
NewSeSnId,
NewSeDatum,
NewSeZeit,
NewSeSpPosition,
NewSeSnPosition,
NewSePosition,
NextSePosition);
/* Region uebernehmen vom entsprechenden Element */
SELECT SEREID FROM SENDEELEMENTE WHERE (SEID = :NewSeId) INTO :SeRegion;
IF (SeRegion IS NULL) THEN BEGIN
SeRegion = 0;
END
/* Felder fuer neuen Datensatz erstellen */
EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;
SeSnId = NewSeSnId;
SeDatum = NewSeDatum;
SeZeit = NewSeZeit;
SeSpPosition = NewSeSpPosition;
SeSnPosition = NewSeSnPosition;
SePosition = NewSePosition + PosOffset;
/* Datensatz einfuegen */
INSERT INTO SENDEELEMENTE (
SEID,SESNID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,
SEZEIT,SESEQUENZ,SEGRUPPE,SETYP,SETITELTHEMA,SEINTERPRET,SEAUTOR,
SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
SEDAUER,SESTARTNEXT,SEMITTELTEIL,SEREID
)
VALUES (
:SeId,:SeSnId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,
:SeZeit,:SeSequenz,:SeGruppe,:SeTyp,:SeTitelThema,:SeInterpret,:SeAutor,
:SeErstellDatum,:SeErsteller,:SeErstellDatum,:SeErsteller,
:SeDauer,:SeDauer,:SeDauer,:SeRegion
);
RetSeId = SeId;
RetSePosition = SePosition;
END
![]() ![]() ![]() |