Auf Thema antworten

Servus!  Ich habe hier ein Problem und zwar: Ich versuche mal Methode und konstruktor von einem subtyp zu erweitern aber es funktioniert irgendwie nicht  ... Immer wieder Warnung (ein Fehler in Body)


SET echo ON;


drop type BODY "RahmenBild_Typ";

drop type "RahmenBild_Typ";

drop type "Bild_Typ";



CREATE TYPE "Bild_Typ" AS OBJECT(

    Nummer INTEGER,

    Bild VARCHAR2(100)

    MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2), 

--ACHTUNG: '_b' funktioniert nicht...wegen dem Unterstrich! AuЯerdem darf varchar2 nicht limitiert werden.

 MEMBER FUNCTION bildAuslesen(nummer INTEGER) RETURN Bild_Typ

)NOT FINAL

NOT instantiable;

/

--

CREATE TYPE "RahmenBild_Typ" UNDER "Bild_Typ"(

    Kategorie VARCHAR2(25),

  

    CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)


    RETURN SELF AS RESULT --While an ordinary function returns some type, a constructor function returns "self as result".

)

/


CREATE TYPE BODY "RahmenBild_Typ" AS


 overriding MEMBER PROCEDURE bildEinlesen(nummer INTEGER, bild VARCHAR2) IS BEGIN

      SELF.Nummer=nummer;

      SELF.Bild=bild;

  END;--END bildEinlesen-Methode



    CONSTRUCTOR FUNCTION "RahmenBild_Typ" (nummer INTEGER, bild VARCHAR2, kategorie VARCHAR2)


    RETURN SELF AS RESULT IS BEGIN

--        bildEinlesen(nummer, bild);

        SELF.Kategorie := kategorie;

        RETURN;

  END "RahmenBild_Typ";--END rahmenBild_Typ-Methode

END;--END BODY



könnte jemand vielleicht ein tipp geben, woran es liegt. ich wäre sehr dankbar dafür.


viele Grüße und besten Dank im Voraus


Zurück
Oben