This commit is contained in:
Oliver Lehmann 1989-09-28 07:17:19 +00:00
parent 7aa015e489
commit 5799b68c01
2 changed files with 314 additions and 0 deletions

View File

@ -0,0 +1,87 @@
#
# MAKEFILE ZUR INSTALLATION DER DEMONSTRATIONEN
# ---------------------------------------------
#
# (Alle Funkionen koennen auch mit grossen Buchstaben
# aufgerufen werden !)
#
# FUNKTIONSBESCHREIBUNG
# ---------------------
#
# ----- make INSTALL
# installiert das Kommando `demodb' zur Erzeugung
# einer vollstaendigen Demonstrationsdatenbank
# durch einen Datenbanknutzer oeffentlich.
# Zusaetzlich wird das Kommando `tutdb' zum auto-
# matischen Abarbeiten der QL-Lehrbeispiele erzeugt.
#
# ----- make CLEAN
# loescht alle generierten und installierten Beispiele.
#
#
# ----- BASIS DEFINITIONEN
#
SHELL= /bin/sh
BIN= ../../bin
RM= rm -f
CP= cp
CHMOD= chmod
MODE= 0755
#
# ----- INSTALL
# installiert das Kommando `demodb' zur Erzeugung
# einer vollstaendigen Demonstrationsdatenbank
# durch einen Datenbanknutzer oeffentlich.
# Zusaetzlich wird das Kommando `tutdb' zum auto-
# matischen Abarbeiten der QL-Lehrbeispiele erzeugt.
# Beide Kommandos erhalten als Argument ein vom
# Nutzer vorzuschlagenden Datenbanknamen.
#
INSTALL: install
install: $(BIN)/demodb $(BIN)/tutdb
$(BIN)/demodb: demodb
$(CP) demodb $@
@$(CHMOD) $(MODE) $@
$(BIN)/tutdb: tutdb
$(CP) tutdb $@
@$(CHMOD) $(MODE) $@
#
# ----- CLEAN
# loescht alle generierten und installierten Beispiele.
#
CLEAN: clean
clean:
@-$(RM) $(BIN)/demodb $(BIN)/tutdb
#
# FOLGENDE FUNKTION SIND INTERN
#
HOME= /z/dbs/demo/ql
DISK= /dev/dbs
SRC= Makefile READ_ME abt artikel \
erfindungen lager lieferant lieferung \
personal teile verkauf demodb \
tutdb tutorial
.save: $(SRC)
mount $(DISK) /wrk
cp $? $@ /wrk/demo_ql
> $@
umount $(DISK)
$(HOME)/.save: $(SRC)
cp $? $(HOME)
> $@
.PRECIOUS: .save
.PRECIOUS: $(HOME)/.save

View File

@ -0,0 +1,227 @@
if test "$1" = "" ; then
echo Kein Datenbankname spezifiziert
exit
fi
echo Die Datenbank $1 wird erstellt -- bitte warten Sie !
if creatdb -c $2 $1 ; then echo Erzeugen der Relationen laeuft ; else exit; fi
iql -s $1 << 'EOF'
:: abt
\print
\reset
create abt
(
num is i2,
name is c20,
lager is i2,
etage is i2,
leiter is i2
)
copy abt
(
num is c0,
name is c0,
lager is c0,
etage is c0,
leiter is c0nl
)
from "{pathname}/demo/ql/abt"
range of abt is abt
define permit all on abt to all
\go
:: artikel
\print
\reset
create artikel
(
num is i2,
name is c20,
abt is i2,
preis is i2,
menge is i2,
lieferant is i2
)
copy artikel
(
num is c0,
name is c0,
abt is c0,
preis is c0,
menge is c0,
lieferant is c0nl
)
from "{pathname}/demo/ql/artikel"
range of artikel is artikel
define permit all on artikel to all
\go
:: erfind
\print
\reset
create erfind
(
erfindung is c36,
erfinder is c20,
jahr is c9,
land is c12
)
copy erfind
(
x0 is "d0'",
erfindung is "c0'",
x1 is d2,
erfinder is "c0'",
x2 is "d0'",
jahr is "c0'",
x3 is d2,
land is "c0'",
x4 is "d0;",
x5 is d0nl
)
from "{pathname}/demo/ql/erfindungen"
range of erfind is erfind
define permit all on erfind to all
\go
:: lager
\print
\reset
create lager
(
num is i2,
ort is c15,
plz is i2,
strasse is c15
)
copy lager
(
num is c0,
ort is c0,
plz is c0,
strasse is c0nl
)
from "{pathname}/demo/ql/lager"
range of lager is lager
define permit all on lager to all
\go
:: lieferant
\print
\reset
create lieferant
(
num is i2,
name is c15,
ort is c15,
plz is i2,
strasse is c15
)
copy lieferant
(
num is c0,
name is c0,
ort is c0,
plz is c0,
strasse is c0nl
)
from "{pathname}/demo/ql/lieferant"
range of lieferant is lieferant
define permit all on lieferant to all
\go
:: lieferung
\print
\reset
create lieferung
(
lnum is i2,
tnum is i2,
bnum is i2,
liefdat is c8,
menge is i2
)
copy lieferung
(
lnum is c0,
tnum is c0,
bnum is c0,
liefdat is c0,
menge is c0nl
)
from "{pathname}/demo/ql/lieferung"
range of lieferung is lieferung
define permit all on lieferung to all
\go
:: personal
\print
\reset
create personal
(
num is i2,
name is c20,
gehalt is i2,
leiter is i2,
gebdat is i2,
einstdat is i2
)
copy personal
(
num is c0,
name is c0,
gehalt is c0,
leiter is c0,
gebdat is c0,
einstdat is c0nl
)
from "{pathname}/demo/ql/personal"
range of personal is personal
define permit all on personal to all
\go
:: teile
\print
\reset
create teile
(
tnum is i2,
tname is c20,
farbe is c8,
gewicht is i2,
menge is i2
)
copy teile
(
tnum is c0,
tname is c0,
farbe is c0,
gewicht is c0,
menge is c0nl
)
from "{pathname}/demo/ql/teile"
range of teile is teile
define permit all on teile to all
\go
:: verkauf
\print
\reset
create verkauf
(
num is c6,
datum is c8,
lager is i2,
abt is i2,
artikel is i2,
menge is i2,
person is i2
)
copy verkauf
(
num is c0,
datum is c0,
lager is c0,
abt is c0,
artikel is c0,
menge is c0,
person is c0nl
)
from "{pathname}/demo/ql/verkauf"
range of verkauf is verkauf
define permit all on verkauf to all
\go
EOF
echo Datenbank $1 erstellt