Container menu
container_menu ist eine Datenbank-Tabelle, die Datenbank-Prozeduren als Menüpunkte im Container-Baum oder in Container-Listen einbaut. Diese lassen sich optional per Container-Typ, Container, Kategorie sowie User einschränken, um nur in bestimmten Typen, bestimmten einzelnen Containern, bestimmten Listen oder aber nur für bestimmte Benutzer aufzutauchen. Aktionen lassen sich als asynchron definieren, Optional lässt sich eine Meldung
Beispiel-Inhalt
| id | UserId | ContainerId | ContainerTyp | ContainerKat | MenuTitel | ActionTyp | StoredProcedure | Meldung |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | NULL | 1 | NULL | Neues Projekt anlegen | Async | BeispielDB_NeuesProjektAnlegen | Sind Sie sicher, dass Sie ein neues Projekt anlegen möchten? |
In Baum-Unterpunkten des Typs 1 sowie in allen Listen, die Typ darstellen, taucht ein Menüpunkt "Neues Projekt anlegen" auf. Beim Aufruf wird dem Benutzer eine Sicherheitsrückfrage gestellt. Schließlich wird eine Prozedur asynchron aufgerufen, d.h. der Benutzer kann parallel weiterarbeiten.
Die Prozedur benötigt die Parameter @ContainerID (oder @CONTAINER_ID) sowie @UserID, jeweils als int. Bei mehreren in der Liste ausgewählten Datensätzen wird jeder einzeln übergeben.
Alternativ gibt es ab SQL Server 2008 die Möglichkeit, durch den Parameter @ContainerIDs, Typ CIDTable mehrere IDs als Tabelle zu übergeben; der Client macht dies dann automatisch. Der Kopf einer solchen Prozedur sähe so aus:
CREATE PROC [dbo].[Demo_BeispielProzedur](@ContainerIDs CIDTable READONLY, @UserID int)
AS
BEGIN
…
END