Prozeduren Previous topic Chapter index Next topic

SE_INSERT

 

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

 

     Previous topic Chapter index Next topic