Eingabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
SRCSNID |
INTEGER |
Ein Primary Key Wert von der SENDUNGEN Tabelle |
SRCSEPOSITION |
INTEGER |
Damit wird das Sendeelement in der Sendestunde über die Position angegeben. |
DESTSESNID |
INTEGER |
Ein Primary Key Wert von der SENDUNGEN Tabelle |
DESTSEDATUM |
DATE |
Damit gibt man das Ziel Datum an. |
DESTSEZEIT |
INTEGER |
Damit wird die Ziel Sendeelement Zeit übergeben. |
DESTSESPPOSITION |
INTEGER |
Damit wird die Ziel Sendeplan Position übergeben. |
DESTSESNPOSITION |
INTEGER |
Damit wird die Ziel Sendung Position übergeben. |
DESTSEPOSITION |
INTEGER |
Damit gibt man die Ziel Sendeelement Position an. |
COPYGROUP |
INTEGER |
Damit wird angegeben, ob nur ein Element oder eine ganze Gruppe kopiert werden soll. |
DIRECTION |
INTEGER |
Damit wird die Richtung bestimmt ab dem angegebenen Element. |
Ausgabeparameter
Parameter | Typ | Beschreibung |
---|---|---|
BLOCKSEID |
INTEGER |
Ein Primary Key Wert von der SENDEELEMENTE Tabelle vom neuen Element wird zurückgegeben. |
BLOCKSEPOSITION |
INTEGER |
Gibt die neue Sendeelement Position zurück vom kopierten Element. |
SEIDLIST |
VARCHAR(8190) |
Damit erhält man eine Komma separierte Liste von Source SEID zurück. |
REFSEIDLIST |
VARCHAR(8190) |
Damit erhält man eine Komma separierte Liste von Ziel SEID zurück. |
Beschreibung
Kopiert ein Sendeelement (mit Klammer) oder auch ganze Blöcke. (Wird von SE_COPY_TO_TIME aufgerufen)
Definition
CREATE PROCEDURE SE_COPY_BLOCK(
SRCSNID INTEGER,
SRCSEPOSITION INTEGER,
DESTSESNID INTEGER,
DESTSEDATUM DATE,
DESTSEZEIT INTEGER,
DESTSESPPOSITION INTEGER,
DESTSESNPOSITION INTEGER,
DESTSEPOSITION INTEGER,
COPYGROUP INTEGER,
DIRECTION INTEGER)
RETURNS (
BLOCKSEID INTEGER,
BLOCKSEPOSITION INTEGER,
SEIDLIST VARCHAR(8190),
REFSEIDLIST VARCHAR(8190))
AS
DECLARE VARIABLE FirstLoopFlag INTEGER;
DECLARE VARIABLE LastKlammer CHAR(1);
DECLARE VARIABLE LastGruppe CHAR(1);
DECLARE VARIABLE LastTyp CHAR(2);
DECLARE VARIABLE HourInMsDiff INTEGER;
DECLARE VARIABLE SeId INTEGER;
DECLARE VARIABLE SeSnId INTEGER;
DECLARE VARIABLE SeTiId INTEGER;
DECLARE VARIABLE SeDatum DATE;
DECLARE VARIABLE SeSpPosition INTEGER;
DECLARE VARIABLE SeSnPosition INTEGER;
DECLARE VARIABLE SePosition INTEGER;
DECLARE VARIABLE SeMark SMALLINT;
DECLARE VARIABLE SeZeit INTEGER;
DECLARE VARIABLE SeDauer INTEGER;
DECLARE VARIABLE SeSequenz CHAR(1);
DECLARE VARIABLE SeGruppe CHAR(1);
DECLARE VARIABLE SeKlammer CHAR(1);
DECLARE VARIABLE SeParallel CHAR(1);
DECLARE VARIABLE SeRFlag CHAR(1);
DECLARE VARIABLE SeTyp CHAR(2);
DECLARE VARIABLE SeTitelThema CHAR(80);
DECLARE VARIABLE SeInterpret CHAR(80);
DECLARE VARIABLE SeKurzBez CHAR(10);
DECLARE VARIABLE SeGeschlecht CHAR(1);
DECLARE VARIABLE SeJahrgang SMALLINT;
DECLARE VARIABLE SeHitJahrgang SMALLINT;
DECLARE VARIABLE SeAutor CHAR(80);
DECLARE VARIABLE SeArchivNr CHAR(50);
DECLARE VARIABLE SeArchivNr_2 CHAR(50);
DECLARE VARIABLE SeSystemNr CHAR(20);
DECLARE VARIABLE SeErstellDatum DATE;
DECLARE VARIABLE SeErsteller CHAR(20);
DECLARE VARIABLE SeBearbDatum DATE;
DECLARE VARIABLE SeBearbeiter CHAR(20);
DECLARE VARIABLE SeQuelle CHAR(1);
DECLARE VARIABLE SeFilename CHAR(255);
DECLARE VARIABLE SeSeite CHAR(1);
DECLARE VARIABLE SeStueckNr SMALLINT;
DECLARE VARIABLE SeMagazinNr SMALLINT;
DECLARE VARIABLE SeSlotNr SMALLINT;
DECLARE VARIABLE SeSmartMix SMALLINT;
DECLARE VARIABLE SeAnmoderation BLOB SUB_TYPE 1;
DECLARE VARIABLE SeText BLOB SUB_TYPE 1;
DECLARE VARIABLE SeAbmoderation BLOB SUB_TYPE 1;
DECLARE VARIABLE SeZusatztext BLOB SUB_TYPE 1;
DECLARE VARIABLE SeZusatzFeld1 CHAR(80);
DECLARE VARIABLE SeZusatzFeld2 CHAR(80);
DECLARE VARIABLE SeSchemaNr CHAR(15);
DECLARE VARIABLE SeVorlauf INTEGER;
DECLARE VARIABLE SeFadeIn INTEGER;
DECLARE VARIABLE SeMittelteil INTEGER;
DECLARE VARIABLE SeFadeOut INTEGER;
DECLARE VARIABLE SeNachlauf INTEGER;
DECLARE VARIABLE SeStartNext INTEGER;
DECLARE VARIABLE SeIntro1 INTEGER;
DECLARE VARIABLE SeIntro2 INTEGER;
DECLARE VARIABLE SeIntro3 INTEGER;
DECLARE VARIABLE SeRefrain1 INTEGER;
DECLARE VARIABLE SeRefrain2 INTEGER;
DECLARE VARIABLE SeRefrain3 INTEGER;
DECLARE VARIABLE SeRefrain4 INTEGER;
DECLARE VARIABLE SeAudioFlag SMALLINT;
DECLARE VARIABLE SeDropInLevel INTEGER;
DECLARE VARIABLE SeFadeInChar CHAR(1);
DECLARE VARIABLE SeFadeOutChar CHAR(1);
DECLARE VARIABLE SeOutroChar CHAR(1);
DECLARE VARIABLE SeToleranz1 INTEGER;
DECLARE VARIABLE SeToleranz2 INTEGER;
DECLARE VARIABLE SeFixeLaenge INTEGER;
DECLARE VARIABLE SeIstDatum DATE;
DECLARE VARIABLE SeIstZeit INTEGER;
DECLARE VARIABLE SeIstDauer INTEGER;
DECLARE VARIABLE SeStatus SMALLINT;
DECLARE VARIABLE SeLevelInfo BLOB SUB_TYPE 0;
DECLARE VARIABLE SeLevelOffset INTEGER;
DECLARE VARIABLE SeInfo CHAR(100);
DECLARE VARIABLE SeVerlag VARCHAR(255);
DECLARE VARIABLE SeKatalogNr CHAR(30);
DECLARE VARIABLE SeIsrc CHAR(20);
DECLARE VARIABLE SeAlbumName CHAR(80);
DECLARE VARIABLE SeKaId INTEGER;
DECLARE VARIABLE SeKomponist VARCHAR(255);
DECLARE VARIABLE SeTexter VARCHAR(255);
DECLARE VARIABLE SeLaId INTEGER;
DECLARE VARIABLE SeReId SMALLINT;
DECLARE VARIABLE SeOmRoId VARCHAR(50);
DECLARE VARIABLE SeOmStoryId VARCHAR(50);
DECLARE VARIABLE SeOmItemId VARCHAR(50);
DECLARE VARIABLE SeObjId VARCHAR(50);
DECLARE VARIABLE SeMosId VARCHAR(50);
DECLARE VARIABLE SePlayerStatus SMALLINT;
DECLARE VARIABLE SeAspectRatio SMALLINT;
DECLARE VARIABLE CurrentSeId INTEGER;
DECLARE VARIABLE ATeId INTEGER;
DECLARE VARIABLE SeBlockId INTEGER;
DECLARE VARIABLE LastSeBlockId INTEGER;
DECLARE VARIABLE ExitAfterKlammer SMALLINT;
DECLARE VARIABLE SeHerkunftId INTEGER;
DECLARE VARIABLE SeMusikVersionId INTEGER;
DECLARE VARIABLE SeSyncIn INTEGER;
DECLARE VARIABLE SeSyncOut INTEGER;
DECLARE VARIABLE SeVorzeitigerSN INTEGER;
BEGIN
SeIdList = '';
RefSeIdList = '';
LastSeBlockId = 0;
/* *************************************************** */
/* Ab aktueller Position reuckwaerts Elemente kopieren */
/* Ende bei erster Vorwaerts-Klammer oder bei Header */
/* (Header wird mitkopiert). */
/* *************************************************** */
IF (Direction = 1) THEN BEGIN
DestSePosition = DestSePosition - 1;
FirstLoopFlag = 1;
ExitAfterKlammer = 0;
FOR
SELECT
SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS, SELEVELINFO,
SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
SETEXTER,SELAID,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
SEPLAYERSTATUS,SEASPECTRATIO,SEBLOCKID,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
FROM SENDEELEMENTE
WHERE (SESNID = :SrcSnId) AND (SEPOSITION <= :SrcSePosition)
ORDER BY SEPOSITION DESCENDING
INTO
:SeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
:SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
:SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
:SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
:SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
:SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
:SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
:SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
:SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
:SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
:SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
:SeTexter,:SeLaId,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
:SePlayerStatus,:SeAspectRatio,:SeBlockId,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
:SeVorzeitigerSN,:SeArchivNr_2
DO BEGIN
IF (FirstLoopFlag = 1) THEN BEGIN
FirstLoopFlag = 0;
ATeId = NULL;
SELECT MIN(TEID)
FROM TRIGGEREDEVENTS
WHERE (TETYP < 100) AND
((TESEID = :SeId) OR
(TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
WHERE (TETRIGGEREDSEID = :SeId))))
INTO :ATeId;
END
ELSE BEGIN
IF (CopyGroup = 0) THEN BEGIN
IF ((LastKlammer <> 'R') AND (SeKlammer <> 'V')) THEN BEGIN
IF (ATeId IS NULL) THEN BEGIN
EXIT;
END
ATeId = NULL;
SELECT MIN(TEID)
FROM TRIGGEREDEVENTS
WHERE (TETYP < 100) AND
((TESEID = :SeId) OR
(TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
WHERE (TETRIGGEREDSEID = :SeId))))
INTO :ATeId;
IF (ATeId IS NULL) THEN BEGIN
EXIT; /* Exit Loop and Procedure */
END
END
END
ELSE IF ((SeBlockId <> LastSeBlockId) OR (LastGruppe <> SeGruppe)) THEN BEGIN
EXIT;
END
IF ((ExitAfterKlammer = 1) OR (LastTyp = 'H') OR (LastTyp = 'HR') OR (LastTyp = 'HB')) THEN BEGIN
IF ((SeKlammer <> 'V') OR (LastGruppe <> SeGruppe)) THEN BEGIN
EXIT; /* Exit Loop and Procedure */
END ELSE BEGIN
ExitAfterKlammer = 1;
END
END
END
CurrentSeId = SeId;
LastKlammer = SeKlammer;
LastGruppe = SeGruppe;
LastTyp = SeTyp;
LastSeBlockId = SeBlockId;
HourInMsDiff = (DestSeSnPosition - SeSnPosition) * 60 * 60 * 10;
EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;
IF (SeIdList != '') THEN
SeIdList = SeIdList || ',';
SeIdList = SeIdList || CAST(CurrentSeId AS VARCHAR(10));
RefSeIdList = RefSeIdList || ';' || CAST(CurrentSeId AS VARCHAR(10)) || ':' || CAST(SeId AS VARCHAR(10));
SeSnId = DestSeSnId;
SeDatum = DestSeDatum;
SeZeit = DestSeZeit;
SeSpPosition = DestSeSpPosition;
SeSnPosition = DestSeSnPosition;
SePosition = DestSePosition;
SeStatus = 0;
DestSePosition = DestSePosition - 1;
BlockSeId = SeId;
BlockSePosition = SePosition;
/* Toleranz Zeit anpassen ausser bei Typ S */
IF (SeTyp <> 'S') THEN BEGIN
IF (SeToleranz1 <> 0) THEN BEGIN
SeToleranz1 = SeToleranz1 + HourInMsDiff;
IF (SeToleranz1 > (24 * 60 * 60 * 1000)) THEN BEGIN
SeToleranz1 = SeToleranz1 - (24 * 60 * 60 * 1000);
END
END
IF (SeToleranz2 <> 0) THEN BEGIN
SeToleranz2 = SeToleranz2 + HourInMsDiff;
IF (SeToleranz2 > (24 * 60 * 60 * 1000)) THEN BEGIN
SeToleranz2 = SeToleranz2 - (24 * 60 * 60 * 1000);
END
END
END
/* SERFLAG darf nicht zurueckgesetzt werden, wenn es sich um ein X Flag handelt! */
IF (SeRFlag <> 'X') THEN BEGIN
SeRFlag = '-';
END
INSERT INTO SENDEELEMENTE (
SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS,SELEVELINFO,
SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
SETEXTER,SELAID,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
)
VALUES (
:SeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
:SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
:SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
:SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
:SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
:SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
:SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
:SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
:SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
:SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
:SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
:SeTexter,:SeLaId,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
:SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
:SeVorzeitigerSN,:SeArchivNr_2
);
/* DABDB-365 */
INSERT INTO UNTERTITEL (UTSEID, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART)
SELECT :SeId, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART FROM UNTERTITEL
WHERE (UTSEID = :CurrentSeId) AND (UTNUTZUNGSART = 1);
END
END
/* ********************************************************* */
/* Ab aktueller Position vorwaerts Elemente kopieren. */
/* Ende bei letzter Rueckwaerts-Klammer oder vor naechstem . */
/* Header (Header wird NICHT mitkopiert). */
/* ********************************************************* */
ELSE BEGIN
DestSePosition = DestSePosition + 1;
FirstLoopFlag = 1;
FOR
SELECT
SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS,SELEVELINFO,
SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
SETEXTER,SELAID,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
SEPLAYERSTATUS,SEASPECTRATIO,SEBLOCKID,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
FROM SENDEELEMENTE
WHERE (SESNID = :SrcSnId) AND (SEPOSITION >= :SrcSePosition)
ORDER BY SEPOSITION ASCENDING
INTO
:SeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
:SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
:SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
:SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
:SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
:SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
:SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
:SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
:SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
:SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
:SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
:SeTexter,:SeLaId,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
:SePlayerStatus,:SeAspectRatio,:SeBlockId,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
:SeVorzeitigerSN,:SeArchivNr_2
DO BEGIN
IF (FirstLoopFlag = 1) THEN BEGIN
LastKlammer = SeKlammer;
LastGruppe = SeGruppe;
BlockSeId = SeId;
BlockSePosition = SePosition;
LastSeBlockId = SeBlockId;
FirstLoopFlag = 0;
ATeId = NULL;
SELECT MIN(TEID)
FROM TRIGGEREDEVENTS
WHERE (TETYP < 100) AND
((TESEID = :SeId) OR
(TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
WHERE (TETRIGGEREDSEID = :SeId))))
INTO :ATeId;
END
ELSE BEGIN
IF (CopyGroup = 0) THEN BEGIN
IF ((LastKlammer <> 'V') AND (SeKlammer <> 'R')) THEN BEGIN
IF (ATeId IS NULL) THEN BEGIN
EXIT; /* Exit Loop and Procedure */
END
ATeId = NULL;
SELECT MIN(TEID)
FROM TRIGGEREDEVENTS
WHERE (TETYP < 100) AND
((TESEID = :SeId) OR
(TESEID IN (SELECT TESEID FROM TRIGGEREDEVENTS
WHERE (TETRIGGEREDSEID = :SeId))))
INTO :ATeId;
IF (ATeId IS NULL) THEN BEGIN
EXIT; /* Exit Loop and Procedure */
END
END
END
ELSE IF ((SeBlockId <> LastSeBlockId) OR (LastGruppe <> SeGruppe)) THEN BEGIN
EXIT;
END
IF ((SeTyp = 'H') OR (SeTyp = 'HR') OR (SeTyp = 'HB')) THEN BEGIN
EXIT; /* Exit Loop and Procedure */
END
CurrentSeId = SeId;
LastKlammer = SeKlammer;
LastGruppe = SeGruppe;
LastSeBlockId = SeBlockId;
HourInMsDiff = (DestSeSnPosition - SeSnPosition) * 60 * 60 * 10;
EXECUTE PROCEDURE NEW_SEID RETURNING_VALUES SeId;
IF (SeIdList != '') THEN
SeIdList = SeIdList || ',';
SeIdList = SeIdList || CAST(CurrentSeId AS VARCHAR(10));
RefSeIdList = RefSeIdList || ';' || CAST(CurrentSeId AS VARCHAR(10)) || ':' || CAST(SeId AS VARCHAR(10));
SeSnId = DestSeSnId;
SeDatum = DestSeDatum;
SeZeit = DestSeZeit;
SeSpPosition = DestSeSpPosition;
SeSnPosition = DestSeSnPosition;
SePosition = DestSePosition;
SeStatus = 0;
DestSePosition = DestSePosition + 1;
BlockSeId = SeId;
BlockSePosition = SePosition;
/* Toleranz Zeit anpassen ausser bei Typ S */
IF (SeTyp <> 'S') THEN BEGIN
IF (SeToleranz1 <> 0) THEN BEGIN
SeToleranz1 = SeToleranz1 + HourInMsDiff;
IF (SeToleranz1 > (24 * 60 * 60 * 1000)) THEN BEGIN
SeToleranz1 = SeToleranz1 - (24 * 60 * 60 * 1000);
END
END
IF (SeToleranz2 <> 0) THEN BEGIN
SeToleranz2 = SeToleranz2 + HourInMsDiff;
IF (SeToleranz2 > (24 * 60 * 60 * 1000)) THEN BEGIN
SeToleranz2 = SeToleranz2 - (24 * 60 * 60 * 1000);
END
END
END
/* SERFLAG darf nicht zurueckgesetzt werden, wenn es sich um ein X Flag handelt! */
IF (SeRFlag <> 'X') THEN BEGIN
SeRFlag = '-';
END
INSERT INTO SENDEELEMENTE (
SEID,SESNID,SETIID,SEDATUM,SESPPOSITION,SESNPOSITION,SEPOSITION,SEMARK,
SEZEIT,SEDAUER,SESEQUENZ,SEGRUPPE,SEKLAMMER,SEPARALLEL,SERFLAG,SETYP,
SETITELTHEMA,SEINTERPRET,SEKURZBEZ,SEGESCHLECHT,SEJAHRGANG,SEHITJAHRGANG,SEAUTOR,
SEARCHIVNR,SESYSTEMNR,SEERSTELLDATUM,SEERSTELLER,SEBEARBDATUM,SEBEARBEITER,
SEQUELLE,SEFILENAME,SESEITE,SESTUECKNR,SEMAGAZINNR,SESLOTNR,SESMARTMIX,
SEANMODERATION,SETEXT,SEABMODERATION,SEZUSATZTEXT,SEZUSATZFELD1,SEZUSATZFELD2,SESCHEMANR,
SEVORLAUF,SEFADEIN,SEMITTELTEIL,SEFADEOUT,SENACHLAUF,SESTARTNEXT,
SEINTRO1,SEINTRO2,SEINTRO3,SEREFRAIN1,SEREFRAIN2,SEREFRAIN3,SEREFRAIN4,
SEDROPINLEVEL,SEFADEINCHAR,SEFADEOUTCHAR,SEOUTROCHAR,SEAUDIOFLAG,
SETOLERANZ1,SETOLERANZ2,SEFIXELAENGE,SEISTDATUM,SEISTZEIT,SEISTDAUER,SESTATUS,SELEVELINFO,
SELEVELOFFSET,SEINFO,SEVERLAG,SEKATALOGNR,SEISRC,SEALBUMNAME,SEKAID,SEKOMPONIST,SEREID,
SETEXTER,SELAID,SEOMROID,SEOMSTORYID,SEOMITEMID,SEOBJID,SEMOSID,
SEPLAYERSTATUS,SEASPECTRATIO,SEHERKUNFTID,SEMUSIKVERSIONID,SESYNCIN,SESYNCOUT,
SEVORZEITIGER_STARTNEXT,SEARCHIVNR_2
)
VALUES (
:SeId,:SeSnId,:SeTiId,:SeDatum,:SeSpPosition,:SeSnPosition,:SePosition,:SeMark,
:SeZeit,:SeDauer,:SeSequenz,:SeGruppe,:SeKlammer,:SeParallel,:SeRFlag,:SeTyp,
:SeTitelThema,:SeInterpret,:SeKurzBez,:SeGeschlecht,:SeJahrgang,:SeHitJahrgang,:SeAutor,
:SeArchivNr,:SeSystemNr,:SeErstelldatum,:SeErsteller,:SeBearbDatum,:SeBearbeiter,
:SeQuelle,:SeFilename,:SeSeite,:SeStueckNr,:SeMagazinNr,:SeSlotNr,:SeSmartMix,
:SeAnmoderation,:SeText,:SeAbmoderation,:SeZusatzText,:SeZusatzFeld1,:SeZusatzFeld2,:SeSchemaNr,
:SeVorlauf,:SeFadeIn,:SeMittelteil,:SeFadeOut,:SeNachlauf,:SeStartNext,
:SeIntro1,:SeIntro2,:SeIntro3,:SeRefrain1,:SeRefrain2,:SeRefrain3,:SeRefrain4,
:SeDropInLevel,:SeFadeInChar,:SeFadeOutChar,:SeOutroChar,:SeAudioFlag,
:SeToleranz1,:SeToleranz2,:SeFixeLaenge,:SeIstDatum,:SeIstZeit,:SeIstDauer,:SeStatus,:SeLevelInfo,
:SeLevelOffset,:SeInfo,:SeVerlag,:SeKatalogNr,:SeIsrc,:SeAlbumName,:SeKaId,:SeKomponist,:SeReId,
:SeTexter,:SeLaId,:SeOmRoId,:SeOmStoryId,:SeOmItemId,:SeObjId,:SeMosId,
:SePlayerStatus,:SeAspectRatio,:SeHerkunftId,:SeMusikVersionId,:SeSyncIn,:SeSyncOut,
:SeVorzeitigerSN,:SeArchivNr_2
);
/* DABDB-365 */
INSERT INTO UNTERTITEL (UTSEID, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART)
SELECT :SeId, UTTIIDUNTER, UTPOSITION, UTLINEINDEX, UTNUTZUNGSDAUER, UTNUTZUNGSART FROM UNTERTITEL
WHERE (UTSEID = :CurrentSeId) AND (UTNUTZUNGSART = 1);
END
END
END
END
![]() ![]() ![]() |