Seitenhistorie
Datenbankobjekte werden benötigt, um benutzerdefinierte Views, Funktionen, Prozeduren usw. als Teil eines Nuclets zu konfigurieren. Bei einem Nuclettransfer werden diese Objekte dann entsprechend mit übernommen.
Inhaltsverzeichnis[Verbergen] |
...
Datenbanktypen
(Administration - Datenbank - Datenbanktypen)
Hier sind die unterstützten Datenbanksysteme aufgelistet. Es können Objekte für die jeweiligen Datenbanksysteme auch mehrfach angelegt werden, um z.B. ein System von einer Datenbank auf eine andere zu portieren. Es werden immer die Datenbankobjekte vom jeweils eingesetzten Datenbanksystem herangezogen.
...
Datenbankobjekte
(Administration - Datenbank - Datenbankobjekte)
Zunächst muss ein Datenbankobjekt angelegt und ein entsprechender Typ zugewiesen werden. Es stehen folgende Typen zur Auswahl:
...
Bitte beachten Sie, wenn eine Function für ein berechnetes Attribut eingesetzt werden soll, muss der Name des Datenbankobjektes mit CA_ beginnen. Nur diese Objekte stehen in der Auswahl einer Berechnungsvorschrift im Entitätenwizard zur Verfügung.
...
Datenbankobjekt-Quelltexte
(Administration - Datenbank - Datenbankobjekt-Quelltexte)
In dieser Maske wird der eigentliche Quelltext des Datenbankobjektes eingetragen. Wenn Aktiv gesetzt, wird das Objekt beim Speichern in der Datenbank generiert oder aktualisiert. Der Quelltext stellt den DB-spezifischen Code dar. Dabei ist die entsprechende Syntax zu beachten. Beim Speichern wird der Schema- oder Datenbankname entsprechend der aktuellen Datenbankverbindung automatisch vor den Namen der Function gesetzt, z.B. nuclos.GET_NEXT_NUMBER(...). Sie dürfen diesen daher an dieser Stelle nicht setzen. In der Löschanweisung kann das entsprechende Statement eingetragen werden. Es wird ausgeführt, wenn der Datensatz aus Nuclos gelöscht wird.
...
Rümpfe für Functions
...
PostgreSQL
Codeblock |
---|
CREATE OR REPLACE FUNCTION |
...
<name>(imoduleid numeric) RETURNS numeric AS $BODY$ |
...
$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; |
Beispiel:
Codeblock |
---|
CREATE OR REPLACE FUNCTION GET_NEXT_NUMBER(imoduleid numeric) RETURNS numeric AS $BODY$ DECLARE iresult NUMERIC (20, 0); BEGIN SELECT intnaechstenummer INTO iresult FROM t_eo_nummern WHERE strbezeichnung = 'Kundennummer'; |
...
RETURN iresult; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; |
Beispiel für Löschanweisung:
Codeblock |
---|
DROP FUNCTION IF EXISTS GET_NEXT_NUMBER(imoduleid numeric) CASCADE |
...
Oracle
Codeblock |
---|
CREATE OR REPLACE FUNCTION |
...
<name>(imoduleid numeric) RETURN number IS |
...
<variable> end |
...
<name>; |
Beispiel:
Codeblock |
---|
CREATE OR REPLACE FUNCTION "CA_ANZAHL_POSITIONEN"(id IN number) RETURN number IS nummer number(15); begin SELECT count(*) INTO nummer FROM t_eo_auftrag_positionen t1 WHERE intid_strreferenz=id; |
...
RETURN nummer; end CA_ANZAHL_POSITIONEN; |
...
SQLServer
...
Beispiel:
@TODO |
...
Sysbase
Codeblock |
---|
ALTER FUNCTION "<name>" (@iModuleId numeric(9)) RETURNS INT AS BEGIN |
...
END |
Beispiel:
Codeblock |
---|
ALTER FUNCTION "CA_GET_VORGANGSNUMMER" (@projektnummer numeric(20), @vorgangstyp VARCHAR(30)) RETURNS INT AS BEGIN declare @nummer numeric(20) declare @counter numeric(20) |
...
SELECT @counter = COUNT(*) FROM t_ad_hertwich_vorgangsnr WHERE projektnr = @projektnummer AND TYP = @vorgangstyp |
...
IF @counter = 0 BEGIN RETURN 0 END SELECT @nummer = t1.vorgangnr FROM t_ad_hertwich_vorgangsnr t1 WHERE t1.projektnr = @projektnummer AND t1.typ = @vorgangstyp |
...
RETURN @nummer END |