move ingres to an extra git project P8000_Ingres

This commit is contained in:
Oliver Lehmann 2015-11-18 19:45:33 +01:00
parent f495e52540
commit 92cda04b6d
1430 changed files with 0 additions and 247761 deletions

View File

@ -1,82 +0,0 @@
Version 0.2 - 2007-04-25
Installation von ing_db unter WEGA
1. Herstellen der Entwicklungsumgebung
1.1. uebertragen sie den Inhalt des Verz. dbs nach /z/dbs
1.2. fuehren sie nun das Kommando ING_DB aus, um die Dateien fuer ING_DB herzurichten
alternativ kann auch das Kommando DABA ausgefuehrt werden, um die Dateien fuer DABA
herzurichten.
1.3. Formatieren Sie nun 10 Disketten (720KB)
1.4. Starten Sie die Befehlskette "make -f Customer 720kb" Dabei werden sie zum Einlegen
der 10 Disketten nacheinander aufgefordert.
Nun haben Sie den Distributionsdiskettensatz zu ING_DB. Vergessen Sie nicht die Disketen
zu beschriften.
Verfahren Sie nun nach der Installationsanleitung "Installation"
Tips:
Eine Bereinigung der Installation erfolgt im Verz. src/conf durch Eingabe von
make allclean reset
Weiterhin sollten die Dateien dbs/src/amx_cc/grammar.y dbs/src/parser/grammar.y,
sowie alle .c Dateien zu denen .y Dateien existieren geloescht werden.
Es sollte geprueft werden, ob nach "make" noch .o Files in einem der Unterverz.
existieren. Ist dies der Fall sind auch diese zu Loeschen.
Maschinentyp> P8000
Betriebsbezeichnung> KEAW
cd src/conf;make -k allinstall >../../GEN.1 2>../../GEN.2
chmod: can't access bin/eql
chmod: can't access bin/rc
chmod: can't access bin/rg
*** Error code 3 (ignored)
chmod: can't access bin/amx
chmod: can't access bin/amxf
chmod: can't access bin/oamx
chmod: can't access bin/oamxf
chmod: can't access bin/samx
chmod: can't access sys/bin/ovqp34
*** Error code 6 (ignored)
Make: Cannot load usersetup. Stop.
*** Error code 1
Stop.
real 6:20:26.28
user 3:13:18.30
sys 1:10:47.50
cpu idle 28%
wait bio 5%
wait swap 0%
wait pio 0%
cpu user 51%
cpu sys 22%
swap in 334
swap out 259
chars read 55822182
chars written 22879637
block reads 564333
logical reads 1295490
cached reads 56%
block writes 83648
logical writes 305590
cached writes 73%
disk0 I/O 0
disk1 I/O 0
disk2 I/O 0
disk3 I/O 0
p switch 200854
preempt 19133
syscall 489778
iget 160551
namei 54119
dirblk 130609
#224

View File

@ -1,42 +0,0 @@
stty ixany erase '^?' kill '^u' intr '^c' quit '^\\'
PATH=:/z/dbs/bin:/z/dbs/sys/bin:/z/wen/bin:/bin:/usr/bin:/etc
export PATH
PS1=#
export PS1
PS2=*
export PS2
umask 22
B=/z/dbs/bin
SB=/z/dbs/sys/bin
b=/z/dbs/sys/bin
C=/z/dbs/src/conf
D=/z/dbs/data/base
A=/z/dbs/data/base/adr
F=/z/dbs/sys/etc
I=/z/dbs
SL=/z/dbs/lib
L=/z/dbs/src/lib
S=/z/dbs/src
a=/z/dbs/src/access
cc=/z/dbs/src/amx_cc
lib=/z/dbs/src/amx_lib
tut=/z/dbs/src/amx_tut
c=/z/dbs/src/proto
dbu=/z/dbs/src/dbu
d=/z/dbs/src/decomp
e=/z/dbs/src/eql
g=/z/dbs/src/gutil
h=/z/dbs/src/h
i=/z/dbs/src/iutil
l=/z/dbs/src/libq
m=/z/dbs/src/monitor
o=/z/dbs/src/ovqp
q=/z/dbs/src/qrymod
p=/z/dbs/src/parser
r=/z/dbs/src/pqr
demo=/z/dbs/src/pqr_demo
s=/z/dbs/src/support
sx=/z/dbs/src/sys
y=/z/dbs/src/yyyacc
M=/z/user/mawi/bestand/src
date

View File

@ -1,23 +0,0 @@
touch .B720
tar cv .B720\
bin/amx\
bin/samx\
bin/amxrm\
bin/copydb\
bin/copyr\
bin/creatdb\
bin/creater\
bin/destroydb\
bin/destroyr\
bin/eqc\
bin/eql\
bin/helpr\
bin/indexr\
bin/daba\
bin/iql\
bin/manr\
bin/refr\
bin/modifyr\
bin/printr\
bin/purge
rm .B720

View File

@ -1,109 +0,0 @@
touch .D720
tar cv .D720\
demo/Makefile\
demo/READ_ME\
demo/amx/01.x\
demo/amx/02.x\
demo/amx/03.x\
demo/amx/04.x\
demo/amx/05.x\
demo/amx/06.x\
demo/amx/07.x\
demo/amx/08.x\
demo/amx/09.x\
demo/amx/10.x\
demo/amx/11.x\
demo/amx/12.x\
demo/amx/13.x\
demo/amx/14.x\
demo/amx/15.x\
demo/amx/16.x\
demo/amx/17.x\
demo/amx/18.x\
demo/amx/Makefile\
demo/amx/READ_ME\
demo/bank/Makefile\
demo/bank/auszug.x\
demo/bank/bank.ascii\
demo/bank/bank.x\
demo/bank/buchung.x\
demo/bank/cursor.c\
demo/bank/cursor.h\
demo/bank/ec1834.h\
demo/bank/globals.x\
demo/bank/grund.ascii\
demo/bank/grund.x\
demo/bank/konto.ascii\
demo/bank/konto.x\
demo/bank/kunde.ascii\
demo/bank/kunde.x\
demo/bank/mahnung.x\
demo/bank/menue.proto\
demo/bank/name.ascii\
demo/bank/name.x\
demo/bank/ort.ascii\
demo/bank/ort.x\
demo/bank/print.c\
demo/bank/relations.x\
demo/bank/str.ascii\
demo/bank/str.x\
demo/bank/util.c\
demo/bank/vorname.ascii\
demo/bank/vorname.x\
demo/dbsr/Makefile\
demo/dbsr/READ_ME\
demo/dbsr/inf.ascii\
demo/dbsr/ot.x\
demo/dbsr/ot_t.x\
demo/dbsr/ota.x\
demo/dbsr/otbc.x\
demo/dbsr/stl.x\
demo/dbsr/stl1.x\
demo/dbsr/teile.ascii\
demo/dbsr/tot.x\
demo/dbsr/ut_t.x\
demo/eql/Makefile\
demo/eql/READ_ME\
demo/eql/eqldemo.q\
demo/eql/eqltut.q\
demo/pqr/Makefile\
demo/pqr/READ_ME\
demo/pqr/report01\
demo/pqr/report02\
demo/pqr/report03\
demo/pqr/tuple01\
demo/ql/Makefile\
demo/ql/READ_ME\
demo/ql/abt\
demo/ql/artikel\
demo/ql/demodb\
demo/ql/erfindungen\
demo/ql/lager\
demo/ql/lieferant\
demo/ql/lieferung\
demo/ql/personal\
demo/ql/teile\
demo/ql/tutdb\
demo/ql/tutorial\
demo/ql/verkauf\
demo/redabas/Makefile\
demo/redabas/READ_ME\
demo/redabas/abt2\
demo/redabas/abt3\
demo/redabas/artikel2\
demo/redabas/artikel3\
demo/redabas/erfind2\
demo/redabas/erfind3\
demo/redabas/lager2\
demo/redabas/lager3\
demo/redabas/liefera2\
demo/redabas/liefera3\
demo/redabas/lieferu2\
demo/redabas/lieferu3\
demo/redabas/pers2\
demo/redabas/pers3\
demo/redabas/teile2\
demo/redabas/teile3\
demo/redabas/verkauf2\
demo/redabas/verkauf3
rm .D720

View File

@ -1,115 +0,0 @@
touch .E720
tar cv .E720\
INFO.DOK\
Installation\
Makefile\
Parallelitaet\
sys/man/00intro\
sys/man/02parser\
sys/man/03qrymod\
sys/man/04aovqp\
sys/man/04bdecom\
sys/man/05dbu\
sys/man/amx\
sys/man/amxi\
sys/man/append\
sys/man/copy\
sys/man/copydb\
sys/man/copyr\
sys/man/creatdb\
sys/man/create\
sys/man/creater\
sys/man/dayfile\
sys/man/dbtmplt\
sys/man/define\
sys/man/delete\
sys/man/destroy\
sys/man/destroydb\
sys/man/destroyr\
sys/man/eqc\
sys/man/error\
sys/man/help\
sys/man/helpr\
sys/man/index\
sys/man/indexr\
sys/man/integrity\
sys/man/iql\
sys/man/iqli\
sys/man/libamx\
sys/man/libq\
sys/man/macros\
sys/man/manr\
sys/man/modify\
sys/man/modifyr\
sys/man/monitor\
sys/man/permit\
sys/man/print\
sys/man/printr\
sys/man/purge\
sys/man/ql\
sys/man/range\
sys/man/rc\
sys/man/rd\
sys/man/refr\
sys/man/replace\
sys/man/report\
sys/man/reporti\
sys/man/restore\
sys/man/retrieve\
sys/man/rg\
sys/man/rp_desc\
sys/man/save\
sys/man/saver\
sys/man/startup\
sys/man/sysmod\
sys/man/toc\
sys/man/users\
sys/man/usersetup\
sys/man/view\
sys/ref/amx\
sys/ref/append\
sys/ref/copy\
sys/ref/copydb\
sys/ref/copyr\
sys/ref/creatdb\
sys/ref/create\
sys/ref/creater\
sys/ref/dayfile\
sys/ref/define\
sys/ref/delete\
sys/ref/destroy\
sys/ref/destroydb\
sys/ref/destroyr\
sys/ref/eqc\
sys/ref/error\
sys/ref/help\
sys/ref/helpr\
sys/ref/index\
sys/ref/indexr\
sys/ref/integrity\
sys/ref/iql\
sys/ref/manr\
sys/ref/modify\
sys/ref/modifyr\
sys/ref/print\
sys/ref/printr\
sys/ref/purge\
sys/ref/range\
sys/ref/rc\
sys/ref/rd\
sys/ref/refr\
sys/ref/replace\
sys/ref/report\
sys/ref/restore\
sys/ref/retrieve\
sys/ref/rg\
sys/ref/rp_desc\
sys/ref/save\
sys/ref/saver\
sys/ref/startup\
sys/ref/sysmod\
sys/ref/toc\
sys/ref/users\
sys/ref/usersetup\
sys/ref/view
rm .E720

View File

@ -1,14 +0,0 @@
touch .L720
tar cv .L720\
bin/rc\
bin/rd\
bin/restore\
bin/rg\
bin/rp_desc\
bin/saver\
bin/sysmod\
lib/libamx.a\
lib/libq.a\
lib/slibamx.a\
lib/slibq.a
rm .L720

View File

@ -1,46 +0,0 @@
touch .S720
tar cv .S720\
sys/bin/dbdev\
sys/bin/dbino\
sys/bin/dbrel\
sys/bin/dbu70_g\
sys/bin/dbu___s\
sys/bin/decomp70\
sys/bin/lockinfo\
sys/bin/monitor\
sys/bin/pager\
sys/bin/parser\
sys/bin/qrymod\
sys/bin/unlock\
sys/bin/usersetup\
sys/etc/Makefile\
sys/etc/amx_ixc6.3\
sys/etc/creatdb_use\
sys/etc/daba_tab6.3\
sys/etc/dayfile6.3\
sys/etc/dbserver\
sys/etc/dbtmplt6.3\
sys/etc/dev_lock.o\
sys/etc/error6.3_1\
sys/etc/error6.3_10\
sys/etc/error6.3_11\
sys/etc/error6.3_12\
sys/etc/error6.3_13\
sys/etc/error6.3_14\
sys/etc/error6.3_15\
sys/etc/error6.3_16\
sys/etc/error6.3_17\
sys/etc/error6.3_18\
sys/etc/error6.3_19\
sys/etc/error6.3_2\
sys/etc/error6.3_20\
sys/etc/error6.3_21\
sys/etc/error6.3_22\
sys/etc/error6.3_3\
sys/etc/error6.3_4\
sys/etc/error6.3_5\
sys/etc/daba_tab6.3\
sys/etc/iql_tab6.3\
sys/etc/iql_use\
sys/etc/startup
rm .S720

View File

@ -1,44 +0,0 @@
Makefile
cat/Makefile
data/base/ingres/Makefile
data/base/adr/Makefile
demo/amx_dt/Makefile
demo/amx_eng/Makefile
demo/pqr_dt/Makefile
demo/ql_eng/Makefile
demo/Makefile
demo/bank/Makefile
demo/ql_dt/Makefile
demo/bom/Makefile
doc/Makefile
src/access/Makefile
src/amx_cc/Makefile
src/amx_lib/Makefile
src/conf/Makefile
src/dbu/Makefile
src/decomp/Makefile
src/gutil/Makefile
src/h/Makefile
src/iutil/Makefile
src/libq/Makefile
src/monitor/Makefile
src/ovqp/Makefile
src/parser/Makefile
src/pqr/Makefile
src/qrymod/Makefile
src/support/Makefile
src/sys/Makefile
src/yyyacc/Makefile
src/struct/Makefile
src/dbase/Makefile
src/oamx_lib/Makefile
src/olibq/Makefile
src/lib/Makefile
src/samx_lib/Makefile
src/slibq/Makefile
src/proto/Makefile
src/eql/Makefile
sys/etc/Makefile
sys/man/Makefile
sys/ref/Makefile
sys/save/Makefile

View File

@ -1,182 +0,0 @@
ACCESS= access/*.h \
access/*.c
AMX_CC= amx_cc/AMX.* \
amx_cc/*.h \
amx_cc/*.y \
amx_cc/*.c
AMX_LIB=amx_lib/*.h \
amx_lib/*.c \
amx_lib/Tracefile \
amx_lib/*.asm \
amx_lib/*.inc
AMX= $(AMX_CC) $(AMX_LIB)
CAT1= cat/1doc.[1-4]
CAT2= cat/1doc.[5-6] \
cat/2doc.[1-3]
CAT1_2= $(CAT1) $(CAT2)
CAT3= cat/2doc.[4-6] \
cat/[3-5]*
CONF= conf/Makefile \
conf/conf.h \
conf/gen.h \
conf/machine.h \
conf/cpp.sed \
conf/dbtmplt.?? \
conf/iql_tab.?? \
proto/access \
proto/amx_cc \
proto/amx_lib \
proto/dbu \
proto/decomp \
proto/eql \
proto/etc \
proto/form \
proto/gutil \
proto/h \
proto/iutil \
proto/libq \
proto/monitor \
proto/oamx_lib \
proto/olibq \
proto/ovqp \
proto/parser \
proto/pqr \
proto/redabas \
proto/qrymod \
proto/samx_lib \
proto/slibq \
proto/support \
proto/sys \
proto/yyyacc
DBU= dbu/*.h \
dbu/*.c
DECOMP= decomp/*.h \
decomp/*.c
DEMO= demo/Makefile \
demo/READ_ME \
demo/amx/* \
demo/bank/* \
demo/dbsr/* \
demo/eql/* \
demo/pqr/* \
demo/ql/*
EQL= eql/*.h \
eql/*.y \
eql/*.c
ETC= Makefile \
Installation \
Parallelitaet \
READ_ME \
sys/man/[a-z]* \
sys/ref/[a-z]* \
sys/etc/READ_ME \
sys/etc/*_use \
sys/etc/dayfile6.3 \
sys/etc/error6.3_* \
sys/etc/startup
GUTIL= gutil/*.h \
gutil/*.c \
gutil/bmove.??*
H= h/*.h
IUTIL= iutil/*.h \
iutil/*.c
LIBQ= libq/*.h \
libq/*.c
MONITOR=monitor/*.h \
monitor/*.c
OVQP= ovqp/*.h \
ovqp/*.c
PARSER= parser/*.h \
parser/*.y \
parser/*.c
PQR= pqr/*.h \
pqr/*.y \
pqr/y.tab.c \
pqr/grammar.ed \
pqr/r*.c
QRYMOD= qrymod/*.h \
qrymod/*.c
SUPPORT=support/*.h \
support/*.c
SYS= sys/*.c \
sys/*.sh
YYYACC= yyyacc/*.h \
yyyacc/*.c
SRC1= $(CONF) $(DBU)
SRC2= $(GUTIL) $(LIBQ) $(EQL)
SRC1_2= $(SRC1) $(SRC2)
SRC3= $(MONITOR) $(DECOMP)
SRC4= $(H) $(IUTIL) $(PARSER)
SRC3_4= $(SRC3) $(SRC4)
SRC5= $(SYS) $(YYYACC) $(ACCESS) $(OVQP)
SRC6= $(QRYMOD) $(SUPPORT)
SRC5_6= $(SRC5) $(SRC6)
720kb: E720 S720 D720 C720
S720: S720.1 S720.2 S720.3 SAMX SPQR
C720: C720.1 C720.2
E720:
@-READY E720
@-tar cv $(ETC) || (FMT fd1; tar c $(ETC))
S720.1:
@-echo S720.1
@-cd src; tar cv0 $(SRC1_2) || (FMT fd0; tar c0 $(SRC1_2))
S720.2:
@-READY S720.2
@-cd src; tar cv $(SRC3_4) || (FMT fd1; tar c $(SRC3_4))
S720.3:
@-echo S720.3
@-cd src; tar cv0 $(SRC5_6) || (FMT fd0; tar c0 $(SRC5_6))
SAMX:
mv src/amx_cc/grammar.y src/amx_cc/Y
mv src/amx_cc/grammar.c src/amx_cc/C
@-READY SAMX
@-cd src; tar cv $(AMX) || (FMT fd1; tar c $(AMX))
mv src/amx_cc/Y src/amx_cc/grammar.y
mv src/amx_cc/C src/amx_cc/grammar.c
SPQR:
@-echo SPQR
@-cd src; tar cv0 $(PQR) || (FMT fd0; tar c0 $(PQR))
D720:
@-READY D720
@-tar cv $(DEMO) || (FMT fd1; tar c $(DEMO))
C720.1:
@-echo C720.1
@-tar cv0 $(CAT1_2) || (FMT fd0; tar c0 $(CAT1_2))
C720.2:
@-READY C720.2
@-tar cv $(CAT3) || (FMT fd1; tar c $(CAT3))

View File

@ -1,258 +0,0 @@
SHELL= /bin/sh
MACH=
DEV= fd0
TARDEV= /dev/$(DEV)
FORMAT= FMT $(DEV)
TAR= tar cfv $(TARDEV)
ACCESS= access/*.h \
access/*.c
AMX_CC= amx_cc/AMX.* \
amx_cc/*.h \
amx_cc/*.y \
amx_cc/*.c
AMX_LIB=amx_lib/*.h \
amx_lib/*.c \
amx_lib/Tracefile \
amx_lib/*.asm \
amx_lib/*.inc
AMX= $(AMX_CC) $(AMX_LIB)
CAT1= cat/1doc.[1-4]
CAT2= cat/1doc.[5-6] \
cat/2doc.[1-3]
CAT1_2= $(CAT1) $(CAT2)
CAT3= cat/2doc.[4-6] \
cat/[3-5]*
CONF= conf/Makefile \
conf/conf.h \
conf/gen.h \
conf/machine.h \
conf/cpp.sed \
conf/dbtmplt.?? \
conf/iql_tab.?? \
proto/access \
proto/amx_cc \
proto/amx_lib \
proto/dbu \
proto/decomp \
proto/eql \
proto/etc \
proto/form \
proto/gutil \
proto/h \
proto/iutil \
proto/libq \
proto/monitor \
proto/oamx_lib \
proto/olibq \
proto/ovqp \
proto/parser \
proto/pqr \
proto/qrymod \
proto/redabas \
proto/samx_lib \
proto/slibq \
proto/support \
proto/sys \
proto/yyyacc
DBU= dbu/*.h \
dbu/*.c
DECOMP= decomp/*.h \
decomp/*.c
DEMO= demo/Makefile \
demo/READ_ME \
demo/amx/* \
demo/bank/* \
demo/dbsr/* \
demo/eql/* \
demo/pqr/* \
demo/ql/*
EQL= eql/*.h \
eql/*.y \
eql/*.c
ETC1= Makefile \
Installation \
Parallelitaet \
READ_ME \
sys/etc/READ_ME \
sys/etc/*_use \
sys/etc/dayfile6.3 \
sys/etc/error6.3_* \
sys/etc/startup \
sys/ref/[a-z]* \
sys/man/[a-c]*
ETC2= sys/man/[d-z]*
ETC= $(ETC1) $(ETC2)
FORM= form/*.h \
form/*.c
GUTIL= gutil/*.h \
gutil/*.c \
gutil/bmove.??*
H= h/*.h
IUTIL= iutil/*.h \
iutil/*.c
LIBQ= libq/*.h \
libq/*.c
MONITOR=monitor/*.h \
monitor/*.c
OVQP= ovqp/*.h \
ovqp/*.c
PARSER= parser/*.h \
parser/*.y \
parser/*.c
PQR= pqr/*.h \
pqr/*.y \
pqr/y.tab.c \
pqr/grammar.ed \
pqr/r*.c
QRYMOD= qrymod/*.h \
qrymod/*.c
REDAB= redabas/*.c \
redabas/*.h \
redabas/*.nr \
redabas/pers.dbd
SUPPORT=support/*.h \
support/*.c
SYS= sys/*.c \
sys/*.sh
YYYACC= yyyacc/*.h \
yyyacc/*.c
SRC1= $(CONF) $(DBU)
SRC2= $(GUTIL) $(LIBQ) $(EQL)
SRC1_2= $(SRC1) $(SRC2)
SRC3= $(MONITOR) $(DECOMP)
SRC4= $(H) $(IUTIL) $(PARSER)
SRC3_4= $(SRC3) $(SRC4)
SRC5= $(SYS) $(YYYACC) $(ACCESS) $(OVQP)
SRC6= $(QRYMOD) $(SUPPORT)
SRC5_6= $(SRC5) $(SRC6)
SRC7= $(FORM) $(REDAB)
720kb: E720 S720 D720 C720
360kb: E360 M360 S360 D360 C360
C720: C720.1 C720.2
D720:
@-READY D720
@-$(TAR) $(DEMO) || ($(FORMAT); $(TAR) $(DEMO))
E720:
@-READY E720
@-$(TAR) $(ETC) || ($(FORMAT); $(TAR) $(ETC))
S720: S720.1 S720.2 S720.3 S720.4 SAMX SPQR
C360: C360.1 C360.2 C360.3
D360:
@-READY D360
@-$(TAR) $(DEMO) || ($(FORMAT); $(TAR) $(DEMO))
E360:
@-READY E360
@-$(TAR) $(ETC1) || ($(FORMAT); $(TAR) $(ETC1))
M360:
@-READY M360
@-$(TAR) $(ETC2) || ($(FORMAT); $(TAR) $(ETC2))
S360: S360.1 S360.2 S360.3 S360.4 S360.5 S360.6 S360.7 SAMX SPQR
C720.1:
@-READY C720.1
@-$(TAR) $(CAT1_2) || ($(FORMAT); $(TAR) $(CAT1_2))
C360.1:
@-READY C360.1
@-$(TAR) $(CAT1) || ($(FORMAT); $(TAR) $(CAT1))
C360.2:
@-READY C360.2
@-$(TAR) $(CAT2) || ($(FORMAT); $(TAR) $(CAT2))
C720.2:
@-READY C720.2
@-$(TAR) $(CAT3) || ($(FORMAT); $(TAR) $(CAT3))
C360.3:
@-READY C360.3
@-$(TAR) $(CAT3) || ($(FORMAT); $(TAR) $(CAT3))
S720.1:
@-READY S720.1
@-cd src; $(TAR) $(SRC1_2) || ($(FORMAT); $(TAR) $(SRC1_2))
S360.1:
@-READY S360.1
@-cd src; $(TAR) $(SRC1) || ($(FORMAT); $(TAR) $(SRC1))
S360.2:
@-READY S360.2
@-cd src; $(TAR) $(SRC2) || ($(FORMAT); $(TAR) $(SRC2))
S720.2:
@-READY S720.2
@-cd src; $(TAR) $(SRC3_4) || ($(FORMAT); $(TAR) $(SRC3_4))
S360.3:
@-READY S360.3
@-cd src; $(TAR) $(SRC3) || ($(FORMAT); $(TAR) $(SRC3))
S360.4:
@-READY S360.4
@-cd src; $(TAR) $(SRC4) || ($(FORMAT); $(TAR) $(SRC4))
S720.3:
@-READY S720.3
@-cd src; $(TAR) $(SRC5_6) || ($(FORMAT); $(TAR) $(SRC5_6))
S720.4:
@-READY S720.4
@-cd src; $(TAR) $(SRC7) || ($(FORMAT); $(TAR) $(SRC7))
S360.5:
@-READY S360.5
@-cd src; $(TAR) $(SRC5) || ($(FORMAT); $(TAR) $(SRC5))
S360.6:
@-READY S360.6
@-cd src; $(TAR) $(SRC6) || ($(FORMAT); $(TAR) $(SRC6))
S360.7:
@-READY S360.7
@-cd src; $(TAR) $(SRC7) || ($(FORMAT); $(TAR) $(SRC7))
SAMX:
@-READY SAMX
@-cd src; $(TAR) $(AMX) || ($(FORMAT); $(TAR) $(AMX))
SPQR:
@-READY SPQR
@-cd src; $(TAR) $(PQR) || ($(FORMAT); $(TAR) $(PQR))

View File

@ -1,19 +0,0 @@
set -x
cp I.daba Installation
cp M.daba Makefile
cp P.daba Parallelitaet
cp sys/etc/dayfile.daba sys/etc/dayfile6.3
cp src/h/bs.daba src/h/bs.h
cp src/monitor/gen.daba src/monitor/gen.c
cp src/pqr/r_dbs.daba src/pqr/r_dbs.c
cp src/proto/etc.daba src/proto/etc
cp src/proto/support.daba src/proto/support
cp src/redabas/DECK.daba src/redabas/DECK.nr
cp src/redabas/MACROS.daba src/redabas/MACROS.nr
rm amx_cc/main2.o \
iutil/initucode.o \
libq/IIdbs.o \
monitor/gen.o \
pqr/r_dbs.o \
slibq/IIdbs.o \
sys/usersetup.o

View File

@ -1,5 +0,0 @@
msdos abcd0 d9 1doc.[1-4] ; echo FD0 DONE &
msdos abcd d9 1doc.[5-6] 2doc.[1-3] ; echo FD1 DONE
echo INSERT NEXT DISK ON DRIVE 1, ok?
read ok
msdos abcd d9 2doc.[4-6] [3-5]* ; echo FD1 DONE &

View File

@ -1,3 +0,0 @@
cd /z/dbs/cat
msdos abcd q9 [13]* && echo FD1 DONE &
msdos abcd0 q9 [245]* && echo FD0 DONE &

View File

@ -1,3 +0,0 @@
cd /z/dbs/cat
tar c [13]* &
tar c0 [245]* &

View File

@ -1,38 +0,0 @@
tar cv demo/amx/.save\
demo/bank/.save\
demo/.save\
demo/dbsr/.save\
demo/eql/.save\
demo/pqr/.save\
demo/ql/.save\
demo/redabas/.save\
src/access/.save\
src/amx_cc/.save\
src/amx_lib/.save\
src/conf/.save\
src/dbu/.save\
src/decomp/.save\
src/redabas/.save\
src/gutil/.save\
src/h/.save\
src/iutil/.save\
src/libq/.save\
src/monitor/.save\
src/ovqp/.save\
src/parser/.save\
src/pqr/.save\
src/qrymod/.save\
src/support/.save\
src/sys/.save\
src/yyyacc/.save\
src/struct/.save\
src/lib/.save\
src/proto/.save\
src/eql/.save\
src/form/.save\
sys/etc/.save\
sys/man/.save\
sys/ref/.save\
sys/save/.save\
.save\
data/base/adr

View File

@ -1,2 +0,0 @@
1 20.09.89 Kolln. Oranien, Fahrzeugelektrik Ruhla
1 Band 09.10.89 Elektronische Bauelemente Teltow

View File

@ -1,365 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | DDDDDD A BBBBBB A 1 66666 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D AAAAAAA BBBBBB AAAAAAA 1 666666 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | DDDDDD A A BBBBBB A A 1 66666 | |#
#| | | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| Relationales Datenbankbetriebssystem |#
#| |#
#| |#
#| VERSION 3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| I N S T A L L A T I O N |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
---- (1) ---- Login MUTOS-Supernutzer
---- (2) ---- Eintragen des Nutzers `daba' in das MUTOS - Nutzer-
verzeichnis `/etc/passwd' in folgender Art:
daba::9:9::/z/daba:
Das Directory `/z/daba' ist das Home-Directory des
Nutzers `daba' , in das alle relevanten Daten des
DABA16.3/4 - Systems eingespielt werden.
Rechnerabhaengig kann das Directory natuerlich auch
woanders angelegt werden, z.B. `/mnt/daba' oder auch
`/usr/daba' usw.
Die Nutzeridentifikation (uid = 9) und die Gruppen-
identifikation (gid = 9) sind unbedingt einzuhalten.
---- (3) ---- Eintragen der Gruppe `daba' in das MUTOS - Gruppen-
verzeichnis `/etc/group' in folgender Art:
daba::9:daba
---- (4) ---- Erstellen des Home-Directory fuer den Nutzer `daba'
mkdir /z/daba
chown daba /z/daba
chgrp daba /z/daba
chmod 0755 /z/daba
---- (5) ---- Login Nutzer `daba'
---- (6) ---- Erstellen des Login-Files fuer den Nutzer `daba'.
Fuer die `sh' das File `/z/daba/.profile' nach
folgendem Muster:
PATH=/z/daba/bin:/z/daba/sys/bin:/bin:/usr/bin:
export PATH
Fuer die `csh' das File `/z/daba/.cshrc' nach
folgendem Muster:
set path=(/z/daba/bin /z/daba/sys/bin /bin /usr/bin)
setenv PATH "/z/daba/bin:/z/daba/sys/bin:/bin:/usr/bin:"
In das Login-File koennen natuerlich weiter Zeilen
zur Terminalinitialisierung usw. eingetragen werden.
Ebenso kann der Suchpfad (PATH) nutzerspezifisch er-
weitert werden. Das Home-Directory ist mit Absicht
nicht Bestandteil des Suchpfades. Anschliessend
sollte das Login-File gegen unberechtigtes Schreiben
geschuetzt werden, z.B. durch
chmod 0400 .profile
fuer die `sh' bzw.
chmod 0400 .cshrc
fuer die `csh'.
---- (7) ---- Login Nutzer `daba'
Um das eben erstellte Login-File auch abzuarbeiten,
ist es notwendig, sich neu anzumelden.
---- (8) ---- Laden der DABA16.3/4 - Installationsroutine mittels
tar xf /dev/geraet (geraet = Ihre Geraetebezeichnung)
von der Diskette E720, E360 oder dem Band ent-
sprechend der Vertriebsform. Der Datentraeger ist
vollstaendig einzulesen.
Wenn Sie das Standardlaufwerk von tar benutzen,
reicht die Angabe
tar x
aus.
---- (9) ---- INSTALLATION des Datanbanksystems DABA16.3/4
Ausfuehrung der Installation durch das Kommando
make disk TAPE=dev [TAR=cmd] [ED=cmd]
fuer die Auslieferung auf 720 KBytes-Disketten bzw.
make disk360 TAPE=dev [TAR=cmd] [ED=cmd]
fuer die Auslieferung auf 360 KBytes-Disketten bzw.
make tape [ED=cmd]
fuer die Auslieferung auf Magnetband.
`dev' ist die Angabe des verwendeten Geraetes in der
Form: fd1, fd096ds9, dmf0, rmt0 usw.
Die Angabe `TAR=cmd' ist notwendig, falls Sie ein zu
`tar' kompatibles Kommando mit dem Namen `cmd' ver-
wenden wollen.
Die Angabe `ED=cmd' gestattet Ihnen, die Verwendung
des Editors `cmd' anstelle von `ed'.
Bei der Installation auftretende Fehler, die mit der
folgenden Mitteilung inhaltlich identisch sind:
*** Error code 1 (ignored)
*** Error code 2 (ignored)
*** Error code 4 (ignored)
usw.
sind vom Entwickler beabsichtigt und beruhen auf der
gleichen Installation fuer verschiedene Rechner.
Die Installation laeuft in folgenden Schritten ab:
- Erzeugen der Systemverzeichnisse
- Laden der Datentraeger
- Anfordern der Betriebsbezeichnung, die von einigen
Kommandos protokolliert wird, durch
Betriebsbezeichnung>
Hier ist eine einzeilige Bezeichnung ohne das Zei-
chen `"' zulaessig.
- Einstellen der richtigen Zugriffsrechte fuer alle
Verzeichnisse und generierten Kommandos.
- Erstellung des Nutzerverzeichnisses, nach der Aus-
schrift
EDITING DBS USERS FILE via ed
koennen Sie das Nutzerverzeichnis (siehe Abschnitt
`Eintragen von Nutzern' in diesem Text)
Ihren Beduerfnissen anpassen, bevor es abgelegt
wird.
--- (10) ---- Login MUTOS-Supernutzer
--- (11) ---- Kopieren der EQL-Laufzeitbibliotheken in ein
oeffentliches Bibliotheks-Directory durch das
Kommando:
cp /z/daba/lib/*libq.a /usr/lib
Einstellen der Zugriffsberechtigungen:
chown daba /usr/lib/*libq.a
chgrp daba /usr/lib/*libq.a
chmod 0644 /usr/lib/*libq.a
--- (12) ---- INSTALLATION der Demonstrationsbeispiele
Das File `demo/Makefile' enthaelt weiter Hinweise
zur Generierung der einzelnen Demonstrationsbeispiele
und deren globale Installation.
--- (13) ---- INSTALLATION des Mehrnutzerbetriebes
DABA16 unterstuetzt grundsaetzlich den parallelen
Zugriff von mehreren Nutzern auf eine Datenbank.
Um den Mehrnutzerbetrieb zu aktivieren, sind die
Hinweise aus dem File `Parallelitaet' zu beachten.
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| Z U S A E T Z L I C H E F U N K T I O N E N |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
make customer
Erstellen einer neuen Betriebsbezeichnung
make mode
Einstellen der richtigen Zugriffsrechte fuer alle
Verzeichnisse und generierten Kommandos.
make users [ED=cmd]
Erstellen des DABA16.3/4 - Nutzerverzeichnisses.
make adduser USER=user [ED=cmd]
Eintragen des neuen Nutzers `user' in das Nutzerver-
zeichnis. Es werden zur Information alle bereits ver-
gebenen DABA16.3/4 - Nutzerkennzeichen ausgegeben.
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| U E B E R P R U E F E N V O N F I L E S |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
Folgende Files sind auf ihren Modus zu pruefen:
/dev/null -rw-rw-rw-
/etc/passwd -rw-r--r--
/etc/group -rw-r--r--
nicht PSU, XENIX /lib/libc.a bzw. /usr/lib/libc.a -rw-r--r--
nicht PSU, XENIX /lib/libm.a bzw. /usr/lib/libm.a -rw-r--r--
nur PSU /SYS/lib/libc.a bzw. /USR/lib/libc.a -rw-r--r--
nur PSU /SYS/lib/libm.a bzw. /USR/lib/libm.a -rw-r--r--
nur XENIX286 /lib/Slibc.a -rw-r--r--
nur XENIX286 /lib/Slibcfp.a -rw-r--r--
nur XENIX286 /lib/Slibm.a -rw-r--r--
nur XENIX286 /lib/Slibx.a -rw-r--r--
nur XENIX286 /lib/Scrt0.o -rw-r--r--
nur XENIX286 /lib/Sseg.o -rw-r--r--
nur XENIX386 /lib/386/Slibc.a -rw-r--r--
nur XENIX386 /lib/386/Slibcfp.a -rw-r--r--
nur XENIX386 /lib/386/Slibm.a -rw-r--r--
nur XENIX386 /lib/386/Slibx.a -rw-r--r--
nur XENIX386 /lib/386/Scrt0.o -rw-r--r--
nur XENIX386 /lib/386/Sseg.o -rw-r--r--
nur P8000, VENIX /lib/crt0.o -rw-r--r--
nicht P8000 /usr/include/setjmp.h -rw-r--r--
nur P8000 /usr/include/setret.h -rw-r--r--
/usr/include/sgtty.h -rw-r--r--
/usr/include/signal.h -rw-r--r--
/usr/include/stdio.h -rw-r--r--
nur LOCKING /usr/include/sys/dir.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/mmu.h -rw-r--r--
nur LOCKING /usr/include/sys/param.h -rw-r--r--
nur LOCKING /usr/include/sys/proc.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/s.out.h -rw-r--r--
/usr/include/sys/stat.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/state.h -rw-r--r--
/usr/include/sys/timeb.h -rw-r--r--
/usr/include/sys/types.h -rw-r--r--
nur LOCKING /usr/include/sys/user.h -rw-r--r--
/tmp -rwxrwxrwx
Folgende Kommandos sind auf ihre Ausfuehrbarkeit durch
daba zu pruefen:
/bin/sh, /lib/cpp, ar
as nur CM1420 CM4 CM52_11 I100 I102 I105 K1630
und PDP34 PDP70
cc, chmod, cp, echo, ed, grep
ld nur P8000 VENIX XENIX
ln, make, mkdir, mknod, mv
ranlib nur A7150 EC1834 ESER_VMX K1820 K1840 PDP70
und PSU VENIX XENIX
rm, rmdir
scc nur P8000
sed, tar, touch
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| E I N T R A G E N V O N N U T Z E R N |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
Durch die Systeminstallation wird das Nutzerverzeichnis
`sys/etc/users' automatisch eingerichtet.
Bei der Anpassung sind folgende Punkte zu beachten:
1) Durch die Systeminstallation wurden alle im MUTOS-
Nutzerverzeichnis `/etc/passwd' stehenden Nutzer in
das DABA16.3/4 Nutzerverzeichnis uebernommen.
2) Alle nicht erwuenschten Nutzer sind zu streichen.
Die MUTOS-Supernutzer sind unbedingt aus dem Nutzerver-
zeichnis zu entfernen !
3) Bei den verbleibenden Nutzer koennen Modifikationen
vorgenommen werden. Die folgende Zeile illustriert
einen Eintrag:
reserved:am:24:15:000000:::/tmp/.ql::
Der Wert `am' ist der DABA16.3/4 Nutzerkode, er
muss zwei Bytes lang und eineindeutig sein, er kann
eigenen Vorstellungen entsprechen geaendert werden.
Der Wert `000000' gibt die DABA16.3/4 Berechtigung
des Nutzers `reserved' an. Die Berechtigung kann in
`000001' geaendert werden, um dem Nutzer die Erlaub-
nis zum Erzeugen von Datenbanken zu geben. Der
Nutzer `daba' muss die Berechtigung `177777' ein-
getragen haben, um seine Systemfunktionen ausueben zu
koennen.
Der Wert `/tmp/.ql' stellt den Prototyp eines
nutzerspezifischen DABA16.3/4 Start-File
(siehe STARTUP(FILES)).
Fuer alle weiteren Fragen siehe USERS(FILES).
4) Die neuen DABA16.3/4 Nutzer sollten auf die Aende-
rung ihres Login-Files hingewiesen werden, damit sie die
Datenbankkommandos aufrufen koennen:
- fuer die `sh' das File `.profile' nach folgendem
Muster:
PATH=/z/daba/bin:/bin:/usr/bin:
export PATH
- fuer die `csh' das File `.cshrc' nach folgendem
Muster:
set path=(/z/daba/bin /bin /usr/bin)
setenv PATH "/z/daba/bin:/bin:/usr/bin:"
Soll zu einem spaeteren Zeitpunkt ein neuer Nutzer in das
das Nutzerverzeichnis aufgenommen werden, so kann das
kann das folgendermassen erfolgen:
make adduser USER=login_name
Es werden zuerst alle verwendeten Nutzerkodes ausgegeben
und anschliessend der Eintrag fuer den Nutzer `login'
zur Korrektur angeboten. Nach Beendigung der Korrektur
wird der neue Nutzer automatisch in das Nutzerverzeich-
nis eingefuegt.

View File

@ -1,239 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | | || | | | | | | | | |#
#| | | | | | | | | | | | |#
#| | | | | | | ||| | | |||||| | |#
#| | | | | | | | | | | | | |#
#| | | | || | | | | | | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | ||||||| | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| A relational database managment system |#
#| |#
#| |#
#| VERSION 6.3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
KONTAKTPARTNER:
Akademie der Wissenschaften der DDR
Zentralinstitut fuer Kybernetik und Informationsprozesse
Koll. Wenzlaff
Abteilung RS
Kurstrasse 33
PSF 1298
BERLIN
1086
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| I N S T A L L A T I O N |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
---- (1) ---- login UNIX - super user
---- (2) ---- Eintragen des Nutzers `ing_db' in das UNIX - Nutzer-
verzeichnis `/etc/passwd' in folgender Art:
ing_db::9:9::/z/ing_db:
Das directory `/z/ing_db' ist das home-directory des
Nutzers `ing_db', in das alle relevanten Daten des
ING_DB 6.3/4 - Systems eingespielt werden.
Rechnerabhaengig kann das directory natuerlich auch
anders gelegt werden, z.B. `/mnt/ing_db' oder auch
`/usr/ing_db' usw.
Die Nutzeridentifikation (uid = 9) und die Gruppen-
identifikation (gid = 9) sind unbedingt einzuhalten.
---- (3) ---- Eintragen der Gruppe `ing_db' in das UNIX - Gruppen-
verzeichnis `/etc/group' in folgender Art:
ing_db::9:ing_db
---- (4) ---- Erstellen des home-directory fuer den Nutzer `ing_db'
mkdir /z/ing_db
chown ing_db /z/ing_db
chgrp ing_db /z/ing_db
chmod 755 /z/ing_db
---- (5) ---- Erstellen des login-files fuer den Nutzer `ing_db'.
Fuer die `sh' das file `/z/ing_db/.profile' nach
folgendem Muster:
PATH=:/z/ing_db/bin:/z/ing_db/sys/bin:/bin:/usr/bin:
export PATH
Fuer die `csh' das file `/z/ing_db/.cshrc' nach
folgendem Muster:
set path=(. /z/ing_db/bin /z/ing_db/sys/bin /bin /usr/bin)
setenv PATH ":/z/ing_db/bin:/z/ing_db/sys/bin:/bin:/usr/bin:"
---- (6) ---- login Nutzer `ing_db'
---- (7) ---- Laden der ING_DB 6.3/4 - Installation mittels
tar xf /dev/... (... = Ihre Geraetebezeichnung)
von der Diskette E720, E360 oder dem Band ent-
sprechend der Vertriebsform. Der Datentraeger ist
vollstaendig einzulesen.
---- (8) ---- Ausfuehrung der Installation durch das Kommando
make disk TAPE=dev [TAR=cmd] [ED=cmd]
fuer die Auslieferung auf 720 KBytes-Disketten bzw.
make disk360 TAPE=dev [TAR=cmd] [ED=cmd]
fuer die Auslieferung auf 360 KBytes-Disketten bzw.
make tape [ED=cmd]
fuer die Auslieferung auf Magnetband.
`dev' ist die Angabe des verwendeten Geraetes in der
Form: fd1, fd096ds9, dmf0 usw.
Die Angabe `TAR=cmd' ist notwendig, falls Sie ein zu
`tar' kompatibles Kommando mit dem Namen `cmd' ver-
wenden wollen.
Die Angabe `ED=cmd' gestattet Ihnen, die Verwendung
des Editors `cmd' anstelle von `ed'.
Drucken Sie sich das file `READ_ME', um die Veraende-
rungen im Realease 4 und notwendige Zusatzkenntnisse
zu erhalten.
Auf den files GEN.1 und GEN.2 wird die Generierung
protokolliert, bei auftretenden Fehlern sind diese
an den Entwickler zu schicken.
Bei der Generierung auftretende Fehler, die mit der
folgenden Mitteilung inhaltlich identisch sind:
*** Error code 1 (ignored)
sind vom Entwickler beabsichtigt und beruhen auf der
gleichen Generierung fuer verschiedene Rechner.
Die Generierung erfolgt ab dem Release 4 grundsaetz-
lich von Quelltextniveau, d.h. sie dauert je nach
Anlagentyp zwischen 0,5 .. 36 Stunden.
Die Generierung laeuft in folgenden Schritten ab:
- Erzeugen der Systemverzeichnisse
- Laden der Datentraeger
- Anfordern des Maschinentyps, fuer die das System
generiert werden soll, durch
Maschinentyp>
Vor der Anforderung wird eine Liste der gueltigen
Maschinentypen ausgegeben, aus der ein Typ auszu-
waehlen ist. Die Anforderung wird solange wieder-
holt, bis der eingegebene Typ akzeptiert wird.
- Anfordern der Betriebsbezeichnung, die von einigen
Kommandos protokolliert wird, durch
Betriebsbezeichnung>
Hier ist eine einzeilige Bezeichnung ohne das Zei-
chen `"' zulaessig.
- Generierung des Systems aus den Quellen.
- Einstellen der richtigen Zugriffsrechte fuer alle
Verzeichnisse und generierten Kommandos.
- Erstellung des Nutzerverzeichnisses, nach der Aus-
schrift
EDITING DBS USERS FILE via ED
koennen Sie das Nutzerverzeichnis (siehe READ_ME)
Ihren Beduerfnissen anpassen, bevor es abgelegt
wird.
---- (9) ---- Zusaetzliche Funktionen des Makefiles
make customer
Erstellen einer neuen Betriebsbezeichnung
make conf
Erstellen eines neuen Anlagentyps
make install
Quelltextgenierung des Systems (fuer Update's)
make system
Generierung fuer eine neue Anlage, unter der Bedin-
gung, dass alle Quellen geladen sind (Zusammenfassung
def Funktion `make customer conf install').
make mode
Einstellen der richtigen Zugriffsrechte fuer alle
Verzeichnisse und generierten Kommandos.
make users [ED=cmd]
Erstellen des ING_DB 6.3/4 - Nutzerverzeichnisses.
make adduser USER=user [ED=cmd]
Eintragen des neuen Nutzers `user' in das Nutzerver-
zeichnis. Es werden zur Information alle bereits ver-
gebenen ING_DB 6.3/4 - Nutzerkennzeichen ausgegeben.
make clean
Loeschen aller fuer ein lauffaehiges System nicht be-
noetigter Komponenten.
VORSICHT: Sichern Sie sich vorher de Inhalte der Ver-
zeichnisse `cat', `doc', `lib' und `src'.

View File

@ -1,3 +0,0 @@
Bezeichnung : DABA16 WEGA
Ausgabe : Version 3 Release 4
Stand : 31.10.89

View File

@ -1,19 +0,0 @@
set -x
cp I.ing_db Installation
cp M.ing_db Makefile
cp P.ing_db Parallelitaet
cp sys/etc/dayfile.ing_db sys/etc/dayfile6.3
cp src/h/bs.ing_db src/h/bs.h
cp src/monitor/gen.ing_db src/monitor/gen.c
cp src/pqr/r_dbs.ing_db src/pqr/r_dbs.c
cp src/proto/etc.ing_db src/proto/etc
cp src/proto/support.ing_db src/proto/support
cp src/redabas/DECK.ing_db src/redabas/DECK.nr
cp src/redabas/MACROS.ing_db src/redabas/MACROS.nr
rm amx_cc/main2.o \
iutil/initucode.o \
libq/IIdbs.o \
monitor/gen.o \
pqr/r_dbs.o \
slibq/IIdbs.o \
sys/usersetup.o

View File

@ -1,207 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | DDDDDD A BBBBBB A 1 66666 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D AAAAAAA BBBBBB AAAAAAA 1 666666 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | DDDDDD A A BBBBBB A A 1 66666 | |#
#| | | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| Relationales Datenbankbetriebssystem |#
#| |#
#| |#
#| VERSION 3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
ED= ed
LS= ls -l
MAKE= make
MFLAGS= -k
MODE_0644= 0644
MODE_0700= 0700
MODE_0711= 0711
MODE_0755= 0755
MODE_0777= 0777
MODE_6711= 6711
PASSWD= /etc/passwd
RM= rm -rf
SHELL= /bin/sh
TAPE= null
TAR= tar
TAR_X= $(TAR) xf /dev/$(TAPE)
USER= bummi
USERS= sys/etc/users
BIN_0711= bin/eqc \
bin/eql \
bin/rc \
bin/rg \
bin/rp_desc
BIN_6711= bin/amx \
bin/amxf \
bin/amxrm \
bin/copydb \
bin/copyr \
bin/creatdb \
bin/creater \
bin/daba \
bin/destroydb \
bin/destroyr \
bin/helpr \
bin/indexr \
bin/iql \
bin/manr \
bin/modifyr \
bin/oamx \
bin/oamxf \
bin/printr \
bin/purge \
bin/rd \
bin/refr \
bin/restore \
bin/samx \
bin/saver \
bin/sysmod
DIRS_0700= data
DIRS_0755= bin \
demo \
demo/amx \
demo/bank \
demo/dbsr \
demo/eql \
demo/pqr \
demo/redabas \
demo/ql \
lib \
sys \
sys/bin \
sys/etc \
sys/man \
sys/ref
DIRS_0777= data/base
DIRS= $(DIRS_0700) $(DIRS_0755) $(DIRS_0777)
SYS_0700= sys/bin/dbdev \
sys/bin/dbino \
sys/bin/dbrel \
sys/bin/lockinfo \
sys/bin/pager \
sys/bin/unlock \
sys/bin/usersetup
SYS_6711= sys/bin/dbu??_? \
sys/bin/decomp?? \
sys/bin/monitor \
sys/bin/ovqp34 \
sys/bin/parser \
sys/bin/qrymod
FILES_0644= Installation \
Makefile \
Parallelitaet \
lib/* \
sys/etc/* \
sys/man/* \
sys/ref/*
FILES_0700= $(DIRS_0700) $(SYS_0700)
FILES_0711= $(BIN_0711)
FILES_0755= $(DIRS_0755)
FILES_0777= $(DIRS_0777)
FILES_6711= $(BIN_6711) $(SYS_6711)
DISK: disk
disk: sysbgn tar720 sysend
TAPE: tape
tape: dirs sysend
SYSBGN: sysbgn
sysbgn: dirs ready
DIRS: dirs
dirs:
@-mkdir $(DIRS)
ready:
@echo 'echo -n INSERT DBS DISTRIBUTION DISK $$1' > READY
@echo read ok >> READY
@chmod $(MODE_0700) READY
SYSEND: sysend
sysend: customer mode users
CUSTOMER: customer
customer:
@echo 'echo -n "Betriebsbezeichnung> "' > CU
@echo 'read betrieb' >> CU
@echo 'echo $$betrieb > sys/etc/customer' >> CU
@chmod $(MODE_0700) CU
@./CU
@$(RM) CU
MODE: mode
mode:
@-chmod $(MODE_0644) $(FILES_0644)
@-chmod $(MODE_0700) $(FILES_0700)
@-chmod $(MODE_0711) $(FILES_0711)
@-chmod $(MODE_0755) $(FILES_0755)
@-chmod $(MODE_0777) $(FILES_0777)
@-chmod $(MODE_6711) $(FILES_6711)
USERS: users
users:
@usersetup
@echo EDITING DBS USERS FILE via $(ED)
@-$(ED) $(USERS)
ADDUSER: adduser
adduser:
@echo Folgende Nutzerkennzeichen sind vergeben
@-sed "s/[a-z_][a-z_0-9]*:\(..\):.*/\1/" $(USERS)
@-usersetup - | grep $(USER) > $(USERS).tmp || echo USER $(USER) not found in $(PASSWD)
@echo EDITING new USER $(USER) via $(ED)
@-$(ED) $(USERS).tmp
@cat $(USERS).tmp >> $(USERS)
@$(RM) $(USERS).tmp
LIST: list
list:
@$(LS) . $(DIRS)
tar720: B720 S720 L720 D720
B720:
@./READY B720
@$(TAR_X)
S720:
@./READY S720
@$(TAR_X)
L720:
@./READY L720
@$(TAR_X)
D720:
@./READY D720
@$(TAR_X)

View File

@ -1,346 +0,0 @@
HOME= /z/dbs
SHELL= /bin/sh
DISK= /dev/dbs
TAPE= null
PASSWD= /etc/passwd
USER= bummi
USERS= sys/etc/users
ED= ed
LS= ls -l
MAKE= make
MFLAGS= -k
RM= rm -rf
TAR= tar
TAR_X= $(TAR) xf /dev/$(TAPE)
MODE_0644= 0644
MODE_0700= 0700
MODE_0711= 0711
MODE_0755= 0755
MODE_0777= 0777
MODE_6711= 6711
SRC= DABA DOK_MS360 DOK_MSDOS DOK_UNIX \
I.daba I.ing_db INFO.DOK ING_DB \
M.daba M.ing_db P.daba P.ing_db \
READ_ME Customer 720B 720D \
720E 720L 720S
DIRS_0700= data
DIRS_0755= bin \
cat \
demo \
demo/amx \
demo/bank \
demo/dbsr \
demo/eql \
demo/pqr \
demo/redabas \
demo/ql \
doc \
lib \
src \
src/access \
src/amx_cc \
src/amx_lib \
src/conf \
src/dbu \
src/decomp \
src/eql \
src/form \
src/gutil \
src/h \
src/iutil \
src/lib \
src/libq \
src/monitor \
src/oamx_lib \
src/olibq \
src/ovqp \
src/parser \
src/pqr \
src/proto \
src/qrymod \
src/redabas \
src/samx_lib \
src/slibq \
src/support \
src/sys \
src/yyyacc \
sys \
sys/bin \
sys/etc \
sys/man \
sys/ref
DIRS_0777= data/base
DIRS= $(DIRS_0700) $(DIRS_0755) $(DIRS_0777)
BIN_0711= bin/eql \
bin/rc \
bin/rg \
bin/rp_desc
BIN_6711= bin/amx \
bin/amxf \
bin/oamx \
bin/oamxf \
bin/samx \
bin/amxrm \
bin/copydb \
bin/copyr \
bin/creatdb \
bin/creater \
bin/destroydb \
bin/destroyr \
bin/helpr \
bin/indexr \
bin/iql \
bin/manr \
bin/modifyr \
bin/printr \
bin/purge \
bin/rd \
bin/restore \
bin/saver \
bin/sysmod
SYS_0700= sys/bin/pager \
sys/bin/usersetup
SYS_6711= sys/bin/dbu??_? \
sys/bin/decomp?? \
sys/bin/monitor \
sys/bin/ovqp34 \
sys/bin/parser \
sys/bin/qrymod
FILES_0644= Installation \
Makefile \
Parallelitaet \
READ_ME \
lib/* \
sys/etc/* \
sys/man/* \
sys/ref/*
FILES_0700= $(DIRS_0700) $(SYS_0700)
FILES_0711= $(BIN_0711)
FILES_0755= $(DIRS_0755)
FILES_0777= $(DIRS_0777)
FILES_6711= $(BIN_6711) $(SYS_6711)
disk: sysbgn tar720 system sysend
tape: dirs system sysend
disk360: sysbgn tar360 system sysend
sysbgn: dirs ready
dirs:
@-mkdir $(DIRS)
ready:
@echo 'echo -n INSERT DBS DISTRIBUTION DISK $$1' > READY
@echo read ok >> READY
@chmod $(MODE_0700) READY
system: conf install
conf:
@-cd src/conf;$(MAKE) $(MFLAGS) reset
@echo 'cat src/conf/machine.h' > MKCONF.sh
@echo 'echo -n " Maschinentyp> "' >> MKCONF.sh
@echo 'read machine' >> MKCONF.sh
@echo 'until grep "$$machine *== " src/conf/machine.h > /dev/null' >> MKCONF.sh
@echo 'do echo Ungueltige Maschinentyp !' >> MKCONF.sh
@echo 'cat src/conf/machine.h' >> MKCONF.sh
@echo 'echo -n " Maschinentyp> "' >> MKCONF.sh
@echo 'read machine' >> MKCONF.sh
@echo 'done' >> MKCONF.sh
@echo 'echo "# define $$machine" > src/conf/m.h' >> MKCONF.sh
@echo 'echo -n "Betriebsbezeichnung> "' >> MKCONF.sh
@echo 'read betrieb' >> MKCONF.sh
@echo 'echo "$$machine / $$betrieb" > sys/etc/customer' >> MKCONF.sh
@chmod $(MODE_0700) MKCONF.sh
@-./MKCONF.sh
@$(RM) MKCONF.sh
install:
cd src/conf;$(MAKE) $(MFLAGS) allinstall >../../GEN.1 2>../../GEN.2
sysend: mode users
mode:
@-chmod $(MODE_0644) $(FILES_0644)
@-chmod $(MODE_0700) $(FILES_0700)
@-chmod $(MODE_0711) $(FILES_0711)
@-chmod $(MODE_0755) $(FILES_0755)
@-chmod $(MODE_0777) $(FILES_0777)
@-chmod $(MODE_6711) $(FILES_6711)
users:
@usersetup
@echo EDITING DBS USERS FILE via $(ED)
@-$(ED) $(USERS)
adduser:
@echo Folgende Nutzerkennzeichen sind vergeben
@-sed "s/[a-z_][a-z_0-9]*:\(..\):.*/\1/" $(USERS)
@-usersetup - | grep $(USER) > $(USERS).tmp || echo USER $(USER) not found in $(PASSWD)
@echo EDITING new USER $(USER) via $(ED)
@-$(ED) $(USERS).tmp
@cat $(USERS).tmp >> $(USERS)
@$(RM) $(USERS).tmp
clean:
@$(RM) cat/* doc/* src/*
list:
@$(LS) . $(DIRS)
tar720: S720.1 S720.2 S720.3 S720.4 SAMX SPQR
S720.1:
@./READY S720.1
@cd src; $(TAR_X)
S720.2:
@./READY S720.2
@cd src; $(TAR_X)
S720.3:
@./READY S720.3
@cd src; $(TAR_X)
S720.4:
@./READY S720.4
@cd src; $(TAR_X)
SAMX:
@./READY SAMX
@cd src; $(TAR_X)
SPQR:
@./READY SPQR
@cd src; $(TAR_X)
C720: C720.1 C720.2 C720.3
C720.1:
@./READY C720.1
@$(TAR_X)
C720.2:
@./READY C720.2
@$(TAR_X)
C720.3:
@./READY C720.3
@$(TAR_X)
tar360: M360 S360.1 S360.2 S360.3 S360.4 S360.5 S360.6 S360.7 SAMX SPQR
M360:
@./READY M360
$(TAR_X)
S360.1:
@./READY S360.1
@cd src; $(TAR_X)
S360.2:
@./READY S360.2
@cd src; $(TAR_X)
S360.3:
@./READY S360.3
@cd src; $(TAR_X)
S360.4:
@./READY S360.4
@cd src; $(TAR_X)
S360.5:
@./READY S360.5
@cd src; $(TAR_X)
S360.6:
@./READY S360.6
@cd src; $(TAR_X)
S360.7:
@./READY S360.7
@cd src; $(TAR_X)
C360: C360.1 C360.2 C360.3 C360.4 C360.5
C360.1:
@./READY C360.1
@$(TAR_X)
C360.2:
@./READY C360.2
@$(TAR_X)
C360.3:
@./READY C360.3
@$(TAR_X)
C360.4:
@./READY C360.4
@$(TAR_X)
C360.5:
@./READY C360.5
@$(TAR_X)
DISK: disk
TAPE: tape
DISK360: disk360
SYSBGN: sysbgn
DIRS: dirs
SYSTEM: system
CONF: conf
INSTALL: install
SYSEND: sysend
MODE: mode
USERS: users
ADDUSER: adduser
CLEAN: clean
LIST: list
.save: $(SRC)
mount $(DISK) /wrk
cp $? $@ /wrk
> $@
umount $(DISK)
$(HOME)/.save: $(SRC)
cp $? /z/dbs
> $@
.PRECIOUS: .save
.PRECIOUS: $(HOME)/.save

View File

@ -1,254 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | DDDDDD A BBBBBB A 1 66666 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D A A B B A A 1 1 6 | |#
#| | D D AAAAAAA BBBBBB AAAAAAA 1 666666 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | D D A A B B A A 1 6 6 | |#
#| | DDDDDD A A BBBBBB A A 1 66666 | |#
#| | | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| Relationales Datenbankbetriebssystem |#
#| |#
#| |#
#| VERSION 3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| I N S T A L L A T I O N |#
#| der parallelen Verwendbarkeit von DABA16-Datenbanken |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
---- (1) ---- Login MUTOS - Supernutzer
---- (2) ---- cd .../sys/etc
---- (3) ---- make /dev/db_lock
---- (4) ---- Eintragen des Aufrufs `/etc/dbserver > /dev/console'
in `/etc/rc' bzw. `/etc/rc_csh' (P8000)
fuer den Systemstart (INIT 2)
---- (5) ---- Eintragen des Aufrufs `/etc/unlock dbserver' in
`/etc/rc' bzw. `/etc/rc_csh' (P8000) fuer die
Systembeendigung (INIT 1)
---- (6) ---- MUTOS neu starten
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| P R O G R A M M B E S C H R E I B U N G |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
/ E T C / D B S E R V E R
-------------------------
Der Datenbankserver ueberwacht alle Transaktionen, die auf Daten-
banken ausgefuehrt werden. Zur Arbeit mit parallel verwendbaren
Datenbanken muss `/etc/dbserver' gestartet werden. Ansonsten er-
scheint die Ausschrift
`Datenbank zeitweilig nicht verfuegbar'
Der Datenbankserver kann nur vom MUTOS-Supernutzer gestartet werden!
Der Datenbankserver wird durch das Kommando
`/etc/unlock dbserver'
des MUTOS-Supernutzers oder durch das Kommando
`unlock dbserver'
des DABA16-Systemverantwortlichen wieder abgehaengt.
/ E T C / U N L O C K bzw. . . . / S Y S / B I N / U N L O C K
------------------------------------------------------------------
Das Programm `unlock' dient dem Abhaengen des Datenbankservers oder
einzelner Prozesse, die der Datenbankserver eingeschlaefert hat. In
der Kommandoform
`/etc/unlock dbserver' bzw. `unlock dbserver'
werden der Datenbankserver abgehaengt und alle schlafenden Datenbank-
prozesse mit einem Fehler aufgeweckt (abnormal beendet). Ein einzel-
ner Datenbankprozess kann mit
`/etc/unlock pid' bzw. `unlock pid'
abnormal beendet werden. Das Kommando kann nur durch den MUTOS-Super-
nutzer oder den DABA16-Systemverantwortlichen verwendet werden.
`pid' ist die Prozessnummer eines schlafenden Prozesses, die ueber
`lockinfo' beschafft werden kann. Bei (hoffentlich nicht) auftreten-
den Systemverklemmungen sollte nicht der Datenbankserver global,
sondern ein Prozess beendet werden, der die Verklemmung hervorruft.
Es duerfen nur schlafende Prozesse mit `unlock' beendet werden, um
die Konsistenz der Datenbanken nicht zu gefaehrden.
*** Systemverklemmungen sind meldepflichtig !
*** Es mussen die Ausgabe von `lockinfo' und die Aktionen, die die
*** verklemmten Prozesse ausgefuehrt haben, an den Entwickler einge-
*** schickt werden.
. . . / S Y S / B I N / L O C K I N F O
---------------------------------------
`lockinfo' liefert Informationen zu aktiven Datenbankprozessen und
den von ihnen gehaltenen Sperren (locks). In der Form
`lockinfo dbname'
werden alle Prozesse und deren Sperren protokolliert, die auf der Da-
tenbank `dbname' arbeiten. In der Form
`lockinfo'
werden alle Prozesse und deren Sperren protokolliert. Aus dem Proto-
koll ist ersichtlich, welche Prozesse auf welches Ereignis warten,
d.h. schlafen.
Beispielausgabe von `lockinfo':
DB.SERVER: WAITQUEUE--> 434
P 433: L 449 L 450
P 434: L 450 R 449
L 450 | 2RQ 2LK 0TA S | 0 | 4 | 3233 | 3/ 1 | USE
L 449 | 2RQ 1LK 1TA E | 0 | 4 | 3233 | 3/ 1 | REL
Erlaeuterung:
Die Ausgabe `WAITQUEUE--> 434' bedeutet, dass der Prozess
mit der Prozessnummer `434' vom Datenbankserver eingeschlae-
fert wurde, da er eine Sperre wuenscht, die zur Zeit nicht
gegeben werden kann.
Eine durch das Zeichen `P' eingeleitete Zeile beschreibt die
Sperren, die durch einen Prozess gehalten oder gewuenscht wer-
den. Die anschliessende Nummer charakterisiert den Prozess.
Gehaltene Sperren werden durch ein `L' (lock), gewuenschte
durch ein `R' (request) markiert. Die Nummer kennzeichnet die
Sperre, die in der folgenden Tabelle beschrieben ist. Die
Zeile `P 433: L 449 L 450' heisst also, dass der Prozess 433
die Sperren 449 und 450 haelt. Die Zeile `P 434: L 450 R 449'
heisst, dass der Prozess 434 die Sperre 450 haelt und die
die Sperre 449 wuenscht (wesshalb er eingeschlaefert wurde).
Eine durch das Zeichen `L' eingeleitete Zeile beschreibt die
Sperren selbst, nach dem `L' folgt die Nummer der Sperre. An-
schliessend folgen 6 Felder die durch das Zeichen `|' sepa-
riert werden.
FELD 1: spiegelt die Sperranforderungen in folgender Form
wieder `#RQ #LK #TA TYP'. `#RQ' gibt die Zahl der ge-
gebenen und gewuenschten Sperren an. `#LK' gibt die
Zahl der gegebenen Sperren an. ' #TA' gibt die Zahl
der auf der Sperre begonnenen Transaktionen an. Der
`TYP' kann `S' parallel (shared) oder `E' nicht
parallel (exclusive) verwendbar sein. Sperren vom Typ
`S' koennen von mehreren Prozessen gehalten werden,
Sperren vom Typ `E' nur von einem.
FELD 2: gibt die Major-Device-Nummer des Geraets an, auf
dem die Datenbank montiert ist (s. DBDEV).
FELD 3: gibt die Minor-Device-Nummer des Geraets an, auf
dem die Datenbank montiert ist (s. DBDEV).
FELD 4: gibt die Inode-Nummer der Datenbank an (s. DBINO).
FELD 5: gibt den TID (Tupelidentifikator) der Relation an, die
gesperrt wurde. Ein TID besteht aus zwei Teilen, der
Seitennummer `P' und der Zeilennummer `L' getrennt
durch das Zeichen `/' (s. DBREL).
FELD 6: gibt eine Sperrspezifikation oder eine Seitennummer
an. Als Sperrspezifikation kann `CS',`USE' oder `REL'
erscheinen. `CS' markiert eine kritische Region
(critical section), `USE' markiert die Relation als
in Benutzung und `REL' sperrt die Relation selbst.
Erscheint eine Nummer, so ist die Sperre eine Seiten-
sperre, d.h. es wird nur ein Abschnitt der Relation
gesperrt.
Die Zeile `L 450 | 2RQ 2LK 0TA S | 0 | 4 | 3233 | 3/ 1 | USE'
beschreibt die Sperre 450. Sie wird von 2 Prozessen gehalten
(2RQ und 2LK), es liegen keine Transaktionen an (0TA). Der
Sperrtyp ist parallel verwendbar, weswegen auch Prozess 433
und 434 die Sperre gleichzeitig halten. Die Datenbank liegt
auf Major 0 und Minor 4 und hat die
Inode 3233. Die gesperrte Relation wird durch das TID `3/1'
gekennzeichnet. Die Angabe `USE' heisst, dass die Relation,
die durch die Felder 2 bis 5 adressiert wurde, in Benutzung
ist.
Die Zeile `L 449 | 2RQ 1LK 1TA E | 0 | 4 | 3233 | 3/ 1 | REL`
beschreibt die Sperre 449. Sie wird von einem Prozess gehal-
ten und von einem gewuenscht (2RQ und 1LK), es liegt eine
Transaktion an (1TA), die Anforderung R449 des Prozesses 434
ist eine Transaktion. Der Sperrtyp ist nicht parallel ver-
wendbar, weswegen auch Prozess 434 eingeschlaefert wurde.
Die Datenbank liegt auf Major 0 und Minor 4 und hat die
Inode 3233. Die gesperrte Relation wird durch das TID `3/1'
gekennzeichnet. Die Angabe `REL' heisst, dass die Relation,
die durch die Felder 2 bis 5 adressiert wurde, gesperrt ist.
Eine Verklemmung tritt dann auf, wenn mindestens zwei Prozesse schla-
fen und jeder mindestens eine Sperre haelt, die der andere anfordert.
Verklemmungen koennen auch komplizierter strukturiert sein und ueber
Prozessketten gehen.
. . . / S Y S / B I N / D B D E V
---------------------------------
Das Kommando `dbdev' liefert zu einer vorzugebenden Major- und
Minor-Device-Nummer das Geraet, auf dem die Datenbank montiert ist.
Unter Umstaenden kann ein Geraet mehrere logische Namen besitzen.
z.B. koennte `dbdev 0 4' folgendes liefern:
brw-r----- 2 bin system 0, 4 Jul 21 1988 md4
crw-r----- 2 bin system 0, 4 Feb 6 09:05 rmd4
crw-r----- 2 bin system 0, 4 Feb 6 09:05 rz
brw-r----- 2 bin system 0, 4 Jul 21 1988 z
. . . / S Y S / B I N / D B I N O
---------------------------------
Das Kommando `dbino' liefert zu einer vorzugebenden Inode-Nummer den
Namen der zugehoerigen Datenbank.
z.B. koennte `dbino 3233' folgendes liefern:
3233 demo
. . . / S Y S / B I N / D B R E L
---------------------------------
Das Kommando `dbrel' liefert zu einer vorzugebenden Datenbank und
einem TID (Seiten- und Zeilennummer) den Namen der zugehoerigen Re-
lation.
z.B. koennte `dbrel demo 3 1' folgendes liefern:
3/ 1| 48: |personal |ii |
`personal' ist der Name der gesuchten Relation, `ii' der Ei-
gentuemer. Die Angabe `48' ist ein Offset und hier ohne Inte-
resse.

View File

@ -1,324 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | | || | | | | | | | | |#
#| | | | | | | | | | | | |#
#| | | | | | | ||| | | |||||| | |#
#| | | | | | | | | | | | | |#
#| | | | || | | | | | | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | ||||||| | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| A relational database managment system |#
#| |#
#| |#
#| VERSION 6.3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
KONTAKTPARTNER:
Akademie der Wissenschaften der DDR
Zentralinstitut fuer Kybernetik und Informationsprozesse
Koll. Wenzlaff
Abteilung RS
Kurstrasse 33
PSF 1298
BERLIN
1086
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| I N S T A L L A T I O N |#
#| der parallelen Verwendbarkeit von Datenbanken |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
---- (1) ---- login UNIX - super user
---- (2) ---- cd .../sys/etc
.../ = login directory von ing_db
---- (3) ---- Nicht P8000: In dem file `Makefile' koennen die
Definitionen fuer
OS: Betriebssystemname
OSLIB: Device-Bibliothek
OSDIR: Konfigurationsverzeichnis des Betriebssystems
MAJOR: Major-Device-Nummer fuer das Lock-Device
geaendert werden. Anschliessend ist das Lock-Device
in die Betriebssytemkonfiguration einzutragen (i.R.
`cdevsw' in `OSDIR/c.c' erweitern und die Groesse
von `nchrdev' kontrollieren).
Das Lock-Device ist ein char-special-device und kennt
die Routinen:
open: extern int dl_open();
read: extern int dl_read();
write: extern int dl_write();
---- (4) ---- make /dev/db_lock
---- (5) ---- Eintragen des Aufrufs `/etc/dbserver > /dev/console'
`/etc/rc' beim Hochfahren (INIT 2)
---- (6) ---- Eintragen des Aufrufs `/etc/unlock dbserver' in
`/etc/rc' beim Runterfahren (INIT 1)
---- (7) ---- Loeschen des Geraetes `/dev/ing_lock',
des Programms `/etc/ing_lock' (fruehere Versionen)
---- (8) ---- Betriebssystem neu starten
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| P R O G R A M M B E S C H R E I B U N G |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
/ E T C / D B S E R V E R
-------------------------
Der Datenbankserver ueberwacht alle Transaktionen die auf Datenbanken
ausgefuehrt werden. Zur Arbeit mit parallel verwendbaren Datenbanken
muss `/etc/dbserver' gestartet werden, ansonsten kommt die Ausschrift
`Datenbank zeitweilig nicht verfuegbar'
Der Datenbankserver kann nur vom superuser gestartet werden !
Der Datenbankserver wird durch das Kommando
`/etc/unlock dbserver'
vom supersuser oder durch das Kommando
`unlock dbserver'
vom ING_DB-Systemadministrator wieder abgehaengt.
/ E T C / U N L O C K bzw. . . . / S Y S / B I N / U N L O C K
------------------------------------------------------------------
Das Programm `unlock' dient dem Abhaengen des Datenbankservers oder
einzelnen Prozessen, die der Datenbankserver eingeschlaefert hat. In
der Kommandoform
`/etc/unlock dbserver' bzw. `unlock dbserver'
werden der Datenbankserver abgehaengt und alle schlafenden Datenbank-
prozesse mit einem Fehler aufgeweckt (abnormal beendet). Ein einzel-
ner Datenbankprozess kann mit
`/etc/unlock pid' bzw. `unlock pid'
abnormal beendet werden. Das Kommando kann nur durch den superuser
oder den ING_DB-Systemadministrator verwendet werden. `pid' ist
die Prozessnummer eines schlafenden Prozesses, die ueber `lockinfo'
beschafft werden kann. Bei (hoffentlich nicht) auftretenden System-
verklemmungen sollte nicht der Datenbankserver global, sondern ein
Prozess beendet werden, der die Verklemmung hervorruft.
Es duerfen nur schlafende Prozesse mit `unlock' beendet werden, um
die Konsistenz der Datenbanken nicht zu gefaehrden.
*** Systemverklemmungen sind meldepflichtig !
*** Es mussen die Ausgabe von `lockinfo' und die Aktionen, die die
*** verklemmten Prozesse ausgefuehrt haben, an den Entwickler einge-
*** schickt werden.
. . . / S Y S / B I N / L O C K I N F O
---------------------------------------
`lockinfo' liefert Informationen zu aktiven Datenbankprozessen und
den von ihnen gehaltenen Sperren (locks). In der Form
`lockinfo db_name'
werden alle Prozesse und deren Sperren protokolliert, die auf der Da-
tenbank `db_name' arbeiten. In der Form
`lockinfo'
werden alle Prozesse und deren Sperren protokolliert. Aus dem Proto-
koll ist ersichtlich, welche Prozesse auf welches Ereignis warten,
d.h. schlafen.
Beispielausgabe von `lockinfo':
DB.SERVER: WAITQUEUE--> 434
P 433: L 449 L 450
P 434: L 450 R 449
L 450 | 2RQ 2LK 0TA S | 0 | 4 | 3233 | 3/ 1 | USE
L 449 | 2RQ 1LK 1TA E | 0 | 4 | 3233 | 3/ 1 | REL
Erlaeuterung:
Die Ausgabe `WAITQUEUE--> 434' bedeutet, dass der Prozess
mit der Prozessnummer `434' vom Datenbankserver eingeschlae-
fert wurde, da er eine Sperre wuenscht, die zur Zeit nicht
gegeben werden kann.
Eine durch das Zeichen `P' eingeleitete Zeile beschreibt die
Sperren, die durch ein Prozess gehalten oder gewuenscht wer-
den. Die anschliessende Nummer charkterisiert den Prozess.
Gehaltene Sperren werden durch ein `L' (lock), gewuenschte
durch ein `R' (request) markiert. Die Nummer kennzeichnet die
Sperre, die in der folgenden Tabelle beschrieben ist. Die
Zeile `P 433: L 449 L 450' heisst also, dass der Prozess 433
die Sperren 449 und 450 haelt. Die Zeile `P 434: L 450 R 449'
heisst, dass der Prozess 434 die Sperre 450 haelt und die
die Sperre 449 wuenscht (wesshalb er eingeschlaefert wurde).
Eine durch das Zeichen `L' eingeleitete Zeile beschreibt die
Sperren selbst, nach dem `L' folgt die Nummer der Sperre. An-
schliessend folgen 6 Felder die durch das Zeichen `|' sepa-
riert werden.
FELD 1: spiegelt die Sperranforderungen in folgender Form
wieder `#RQ #LK #TA TYP'. `#RQ' gibt die Zahl der ge-
gebenen und gewuenschten Sperren an. `#LK' gibt die
Zahl der gegebenen Sperren an. ' #TA' gibt die Zahl
der auf der Sperre begonnenen Transaktionen an. Der
`TYP' kann `S' parallel (shared) oder `E' nicht
parallel (exclusive) verwendbar sein. Sperren vom Typ
`S' koennen von mehreren Prozessen gehalten werden,
Sperren vom Typ `E' nur von einem.
FELD 2: gibt die major-device-Nummer des Geraets an, auf
dem die Datenbank montiert ist (s. DBDEV).
FELD 3: gibt die minor-device-Nummer des Geraets an, auf
dem die Datenbank montiert ist (s. DBDEV).
FELD 4: gibt die inode-Nummer der Datenbank an (s. DBINO).
FELD 5: gibt das TID (Tupelidentifier) der Relation an, die
gesperrt wurde. Ein TID besteht aus zwei Teilen, der
Seitennummer `P' und der Zeilennummer `L' getrennt
durch das Zeichen `/' (s. DBREL).
FELD 6: gibt eine Lockspezifikation oder eine Seitennummer
an. Als Lockspezification kann `CS', `USE' oder `REL'
erscheinen. `CS' markiert eine kritische Region
(critical section), `USE' markiert die Relation als
in Benutzung und `REL' sperrt die Relation selbst.
Erscheint eine Nummer, so ist die Sperre eine Seiten-
sperre, d.h. es wird nur ein Abschnitt der Relation
gesperrt.
Die Zeile `L 450 | 2RQ 2LK 0TA S | 0 | 4 | 3233 | 3/ 1 | USE'
beschreibt die Sperre 450. Sie wird von 2 Prozessen gehalten
(2RQ und 2LK), es liegen keine Transaktionen an (0TA). Der
Sperrtyp ist parallel verwendbar, weswegen auch Prozess 433
und 434 die Sperre gleichzeitig halten. Die Datenbank liegt
auf major 0 und minor 4 (entspricht /dev/z) und hat die
inode 3233. Die gesperrte Relation wird durch das TID `3/1'
gekennzeichnet. Die Angabe `USE' heisst, dass die Relation,
die durch die Felder 2 bis 5 adressiert wurde, in Benutzung
ist.
Die Zeile `L 449 | 2RQ 1LK 1TA E | 0 | 4 | 3233 | 3/ 1 | REL`
beschreibt die Sperre 449. Sie wird von einem Prozess gehal-
ten und von einem gewuenscht (2RQ und 1LK), es liegt eine
Transaktion an (1TA), die Anforderung R449 des Prozesses 434
ist eine Transaktion. Der Sperrtyp ist nicht parallel ver-
wendbar, weswegen auch Prozess 434 eingeschlaefert wurde.
Die Datenbank liegt auf major 0 und minor 4 und hat die
inode 3233. Die gesperrte Relation wird durch das TID `3/1'
gekennzeichnet. Die Angabe `REL' heisst, dass die Relation,
die durch die Felder 2 bis 5 adressiert wurde, gesperrt ist.
Eine Verklemmung tritt dann auf, wenn mindestens zwei Prozesse schla-
fen und jeder mindestens eine Sperre haelt, die der andere anfordert.
Verklammungen koennen auch komplizierter strukturiert sein und ueber
Prozessketten gehen.
. . . / S Y S / B I N / D B D E V
---------------------------------
Das Kommando `dbdev' liefert zu einer vorzugebenden major- und
minor-device-Nummer das Geraet, auf dem die Datenbank montiert ist.
Unter Umstaenden kann ein Geraet mehrere logische Namen besitzen.
z.B. koennte `dbdev 0 4' folgendes liefern:
brw-r----- 2 bin system 0, 4 Jul 21 1988 md4
crw-r----- 2 bin system 0, 4 Feb 6 09:05 rmd4
crw-r----- 2 bin system 0, 4 Feb 6 09:05 rz
brw-r----- 2 bin system 0, 4 Jul 21 1988 z
. . . / S Y S / B I N / D B I N O
---------------------------------
Das Kommando `dbino' liefert zu einer vorzugebenden inode-Nummer den
Namen der zugehoerigen Datenbank.
z.B. koennte `dbino 3233' folgendes liefern:
3233 demo
. . . / S Y S / B I N / D B R E L
---------------------------------
Das Kommando `dbrel' liefert zu einer vorzugebenden Datenbank und
einem TID (Seiten- und Zeilennummer) den Namen der zugehoerigen Re-
lation.
z.B. koennte `dbrel demo 3 1' folgendes liefern:
3/ 1| 48: |personal |ii |
`personal' ist der Name der gesuchten Relation, `ii' der Ei-
gentuemer. Die Angabe `48' ist ein Offset und hier ohne Inte-
resse.

View File

@ -1,57 +0,0 @@
123456789012345678901234567890123456789012345678901234567
8) Wechseln in das Konfigurations-directory:
`cd source/conf'
9) Editieren des Konfigurations-file `conf.h'
Nach der Zeile
`/* define MACHINE here */'
ist die gewuenschte Maschine einzutragen. Folgende
Maschinen sind verfuegbar:
BC == BC 5120.16
ESER == EC... (VMX)
P8000
PDP == PDP11/34, K1630, SM4-20, I100 ...
PDP70 == PDP11/45, PDP11/70, I106 ...
VAX == VAX11, K1840, SM52 ...
VENIX == IBM/XT
XENIX == IBM/AT
Nach der Zeile
`/* define FLAGS here */'
koennen Flags gesetzt oder nicht gesetzt werden.
Folgende Flags sollten gesetzt werden:
STRIPFLAG: strip load modules
Folgende Flags sollten nicht gesetzt werden:
TEST: generate test code
Folgende Flags sollten in Abhaengigkeit des Rechners
gesetzt bzw. nicht gesetzt werden:
FP_PROCESSOR: floating point processor
Folgende Flags sollten nicht veraendert werden:
BIT_32: 32-bit wordsize
ID_SEPERATE: seperate I/D available
RANLIB: ranlib available
REV_BYTES: revers bytes in word
REV_WORDS: revers words in long word
SIGN_EXT: sign extension (char -> int)
TEXT_SEPERATE:seperate text segment available
10) Generierung (`make allclean allinstall').
Die Generierung erfolgt mit dem UNIX-Werzeug `make'.
Folgende entries sind verfuegbar:
- `make allclean'
Loeschen der maschinenabhaengigen make-files, der
Bibliotheken im directory `lib' und der Kommandos
im directory `bin'.
- `make allinstall'
Ein Zusammenfassung fuer make allclean conf install
- `make clean'
Loeschen aller Objekte in den Quellverzeichnissen.
- `make conf'
Erstellung der maschinenabhaengigen make-files und
ING_DB 6.3/2 System-files.
- `make install'
Installierung bzw. Modifizierung des gesammten
ING_DB 6.3/2 - Systems.

View File

@ -1,462 +0,0 @@
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| +----------------------------------------------------------------------+ |#
#| | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | | || | | | | | | | | |#
#| | | | | | | | | | | | |#
#| | | | | | | ||| | | |||||| | |#
#| | | | | | | | | | | | | |#
#| | | | || | | | | | | | |#
#| | ||||||| | | ||||| |||||| |||||| | |#
#| | ||||||| | |#
#| | | |#
#| +----------------------------------------------------------------------+ |#
#| |#
#| |#
#| A relational database managment system |#
#| |#
#| |#
#| VERSION 6.3 |#
#| |#
#| RELEASE 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
KONTAKTPARTNER:
Akademie der Wissenschaften der DDR
Zentralinstitut fuer Kybernetik und Informationsprozesse
Koll. Wenzlaff
Abteilung RS
Kurstrasse 33
PSF 1298
BERLIN
1086
##############################################################################
#+--------------------------------------------------------------------------+#
#| U E B E R P R U E F E N V O N F I L E S |#
#+--------------------------------------------------------------------------+#
##############################################################################
Folgende files sind auf ihren mode zu pruefen:
/dev/null -rw-rw-rw-
/etc/passwd -rw-r--r--
/etc/group -rw-r--r--
nicht PSU, XENIX /lib/libc.a bzw. /usr/lib/libc.a -rw-r--r--
nicht PSU, XENIX /lib/libm.a bzw. /usr/lib/libm.a -rw-r--r--
nur PSU /SYS/lib/libc.a bzw. /USR/lib/libc.a -rw-r--r--
nur PSU /SYS/lib/libm.a bzw. /USR/lib/libm.a -rw-r--r--
nur XENIX286 /lib/Slibc.a -rw-r--r--
nur XENIX286 /lib/Slibcfp.a -rw-r--r--
nur XENIX286 /lib/Slibm.a -rw-r--r--
nur XENIX286 /lib/Slibx.a -rw-r--r--
nur XENIX286 /lib/Scrt0.o -rw-r--r--
nur XENIX286 /lib/Sseg.o -rw-r--r--
nur XENIX386 /lib/386/Slibc.a -rw-r--r--
nur XENIX386 /lib/386/Slibcfp.a -rw-r--r--
nur XENIX386 /lib/386/Slibm.a -rw-r--r--
nur XENIX386 /lib/386/Slibx.a -rw-r--r--
nur XENIX386 /lib/386/Scrt0.o -rw-r--r--
nur XENIX386 /lib/386/Sseg.o -rw-r--r--
nur P8000, VENIX /lib/crt0.o -rw-r--r--
nicht P8000 /usr/include/setjmp.h -rw-r--r--
nur P8000 /usr/include/setret.h -rw-r--r--
/usr/include/sgtty.h -rw-r--r--
/usr/include/signal.h -rw-r--r--
/usr/include/stdio.h -rw-r--r--
nur LOCKING /usr/include/sys/dir.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/mmu.h -rw-r--r--
nur LOCKING /usr/include/sys/param.h -rw-r--r--
nur LOCKING /usr/include/sys/proc.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/s.out.h -rw-r--r--
/usr/include/sys/stat.h -rw-r--r--
nur P8000-LOCKING /usr/include/sys/state.h -rw-r--r--
/usr/include/sys/timeb.h -rw-r--r--
/usr/include/sys/types.h -rw-r--r--
nur LOCKING /usr/include/sys/user.h -rw-r--r--
/tmp -rwxrwxrwx
Folgende Kommandos sind auf ihre Ausfuehrbarkeit durch
ing_db zu pruefen:
/bin/sh, /lib/cpp, ar
as nur CM1420 CM4 CM52_11 I100 I102 I105 K1630
und PDP34 PDP70
cc, chmod, cp, echo, ed, grep
ld nur P8000 VENIX XENIX
ln, make, mkdir, mknod, mv
ranlib nur A7150 EC1834 ESER_VMX K1820 K1840 PDP70
und PSU VENIX XENIX
rm, rmdir
scc nur P8000
sed, tar, touch
nur VMX Bitte entfernen Sie `modf.o' aus `/lib/libm.a' und
stellen den Modul nach `/lib/libc.a' und kontrollieren Sie
das Vorhandensein des Moduls `ecvt.o' in `/lib/libc.a'.
nur XENIX Eventuell ist der Modul `doprnt.o' sowohl in der
Bibliothek `/lib/Slibcfp.a' als auch in `/lib/Slibc.a' vor-
handen, bitte entfernen Sie ihn aus `/lib/Slibcfp.a'.
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| E I N T R A G E N V O N N U T Z E R N |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
Durch die Systeminstallation wird das Nutzerverzeichnis
`.../sys/etc/users' automatisch eingerichtet.
Bei der Anpassung sind folgende Punkte zu beachten:
1) Durch die Systeminstallation wurden alle im UNIX-
Nutzerverzeichnis `/etc/passwd' stehenden Nutzer in
das ING_DB 6.3/4 Nutzerverzeichnis uebernommen.
2) Alle nicht erwuenschten Nutzer sind zu streichen.
Die UNIX superuser sind unbedingt aus dem Nutzerver-
zeichnis zu entfernen !
3) Bei den verbleibenden Nutzer koennen Modifikationen
vorgenommen werden. Die folgende Zeile illustriert
einen Eintrag:
reserved:am:24:15:000000:::/tmp/.quel::
Der Wert `am' ist der ING_DB 6.3/4 Nutzerkode, er
muss zwei Bytes lang und eineindeutig sein, er kann
eigenen Vorstellungen entsprechen geaendert werden.
Der Wert `000000' gibt die ING_DB 6.3/4 Berechtigung
des Nutzers `reserved' an. Die Berechtigung kann in
`000001' geaendert werden, um dem Nutzer die Erlaub-
nis zum Erzeugen von Datenbanken zu geben. Der
Nutzer `ing_db' muss die Berechtigung `177777' ein-
getragen haben, um seine Systemfunktionen ausueben zu
koennen.
Der Wert `/tmp/.quel' stellt den Prototyp eines
nutzerspezifischen ING_DB 6.3/4 startup-file dar.
Fuere alle weiter Fragen siehe USERS(FILES).
4) Die neuen ING_DB 6.3/4 Nutzer sollten auf die Aende-
rung ihres profile hingewiesen werden, damit sie die
Datenbankkommandos aufrufen koennen:
- fuer die `sh' das file `.profile' nach folgendem
Muster:
PATH=:/z/ing_db/bin:/bin:/usr/bin:
export PATH
- fuer die `csh' das file `.cshrc' nach folgendem
Muster:
set path=(. /z/ing_db/bin /bin /usr/bin)
setenv PATH ":/z/ing_db/bin:/bin:/usr/bin:"
Soll zu einem spaeteren Zeitpunkt ein neuer Nutzer in das
das Nutzerverzeichnis aufgenommen werden, so kann das
kann das folgendermassen erfolgen:
make adduser USER=login_name
Es werden zuerst alle verwendeten Nutzerkodes ausgegeben
und anschliessend der Eintrag fuer den Nutzer `login'
zur Korrektur angeboten. Nach Beendigung der Korrektur
wird der neue Nutzer automatisch in das Nutzerverzeich-
nis eingefuegt.
##############################################################################
#+--------------------------------------------------------------------------+#
#| |#
#| V E R A E N D E R U N G E N |#
#| |#
#| i m R e l e a s e 4 |#
#| |#
#+--------------------------------------------------------------------------+#
##############################################################################
Anlegen von gemounteten Datenbanken
Eine gemountete Datenbank ist eine Datenbank, die sich
auf einem seperaten Datentraeger befindet, d.h. genau ei-
ne Datenbank auf einem Datentraeger.
Gemountete Datenbanken koennen von allen Nutzern erzeugt
werden.
Das Anlegen wird anhand eines Beispiels dokumentiert:
1) creatdb mount_db
2) destroydb -m mount_db
HINWEIS: Jetzt vom UNIX-superuser einen Datentraeger
in `.../data/base/mount_db' mounten lassen.
3) creatdb -m [weiter Flags moeglich] mount_db
In der Zukunft muss immer darauf geachtet werden, dass
wenn die Datenbank mount_db angesprochen werden soll,
auch der Datentraeger gemountet ist !
Anlegen von entfernten Datenbanken
Entfernte Datenbanken sind Datenbanken, die nicht in dem
vorgesehen Systempfad `.../data/base' angelegt werden
sollen. Das kann sinnvoll sein, wenn z.B. mehrere Daten-
banken auf einem seperaten Datentraeger angelegt werden
sollen.
Entfernte Datenbanken koennen nur vom Systemadministrator
`ing_db' im Auftrag von Nutzern angelegt werden.
Das Anlegen wird anhand eines Beispiels dokumentiert:
Der Nutzer `ausserhalb' moechte die Datenbank `jwd' in
dem directory `/irgendwo/janz' anlegen. Er teilt dem
Systemadministrator `ing_db' mit, dass die Datenbank pri-
vat und mit QRYMOD-Unterstuetzung erzeugt werden soll.
1) login: ing_db
passwd: <wird nicht verraten>
2) cd data/base
3) creatdb -uausserhal -c +q jwd
HINWEIS: In `/irgendwo/janz' koennte ein Datentraeger
gemountet werden.
4) mkdir /irgendwo/janz/weit
chmod 700 /irgendwo/janz/weit
HINWEIS: weit ist ein beliebiger Name.
In `/irgendwo/janz/weit' koennte ein Daten-
traeger gemountet werden.
5) mkdir /irgendwo/janz/weit/weg
chmod 777 /irgendwo/janz/weit/weg
HINWEIS: weg ist ein beliebiger Name.
In `/irgendwo/janz/weit/weg' einen Daten-
traeger zu mounten ist nicht sinnvoll, da
sie dann als mountbare Datenbank im System
haette angelegt werden koennen.
6) mv jwd/* /irgendwo/janz/weit/weg
7) rmdir jwd
8) echo /irgendwo/janz/weit/weg > jwd
chmod 600 jwd
Nach dem die Datenbank entfernt angelegt ist, kann mit
ihr wie mit normalen Datenbanken gearbeit werden. Das
Kommando DESTROYDB(UNIX) traegt entfernt angelegte Daten-
banken korrekt aus. Durch diese Form der Anlage wird der
volle Schutz fuer entfernte Datenbanken garantiert !
COPYDB
COPYDB(UNIX) funktioniert jetzt korrekt.
COPYR
Der file-Name muss kein voller Pfadname mehr sein.
CREATDB
Es gibt jetzt die Moeglichkeit, die Seitengroesse der Da-
tenbank an das Betriebssystem anzupassen. Unterstuetzt
werden Seitengroessen von 512 und 1024 Bytes. Durch die
Angabe des Flags `-1' werden 512'er und durch die Angabe
des Flags `-2' werden 1024'er Datenbanken erzeugt.
Standard sind 1024'er Datenbanken.
Beide Formen koennen parallel in einem System angelegt
werden, ING_DB 6.3/4 verwaltet diesen Unterschied intern.
512'er koennen nicht in 1024'er Datenbanken konvertiert
werden, dazu muessen sie logisch auskopiert und wieder
einkopiert werden (siehe COPYDB(UNIX)).
INDEXR
INDEXR(UNIX) kennt folgende neuen Flags:
-fillfactor:zahl
-minpages:zahl
-maxpages:zahl
-nspeicher_struktur
-tidp
Die Flags entsprechen den Angaben
FILLFACTOR = zahl
MINPAGES = zahl
MAXPAGES = zahl
in der WHERE-Klausel von MODIFY(QUEL) bzw.
-nspeicher_struktur
von ING_DB(UNIX). Die Angabe von `-tidp' dient dazu, den
Indexschluessel eindeutig zu machen. Diese Angabe sollte
aber vermieden werden, da der AMX-Compiler falsche Daten-
zugriffe generiert, ein Problem das zukuenftig abgestellt
werden wird.
ING_DB
Das Kommando ING_DB(UNIX) heisst jetzt QUEL und kennt
folgende neuen Flags:
-Ipfadname
zur Angabe eine \include-files fuer den Terminalmonitor.
Es wird nur das file abgearbeitet, die Eingabe bleibt vom
Terminal.
-lzeichen
zur Angabe eines Zeiches fuer die Umrahmung der Tabellen,
bisher immer `-'.
MANR
Neues shell-Kommando zur Auslistung der online-Dokumenta-
tion (analog \HELP-Kommando des Terminalmonitors).
MODIFYR
MODIFYR(UNIX) kennt folgende neuen Flags:
-fillfactor:zahl
-minpages:zahl
-maxpages:zahl
Die Flags entsprechen den Angaben
FILLFACTOR = zahl
MINPAGES = zahl
MAXPAGES = zahl
in der WHERE-Klausel von MODIFY(QUEL).
REFR
Neues shell-Kommando zur Auslistung der online-Dokumenta-
tion (analog \help-Kommando des Terminalmonitors).
-u:xx
Das alter-ego-Flag in dieser Form ist ersatzlos aus allen
Kommandos gestrichen, es gibt nur noch die Form
-ulogin_name
Demonstrationen
Die Kommandos `demo_dt' und `demo_eng' zur Erstellung der
Demonstrationsdatenbank heissen jetzt `quel_dt' bzw.
`quel_eng'.
Es gibt zusaetzlich die Kommandos `tut_dt' und `tut_eng'
zum automatischen Ablauf der Anfragen, die in der Doku-
mentation `Anwendung der QUEL' beschrieben sind. Zu den
Kommandos muss eine Datenbankname angegeben werden.
Alle Demonstrationen sind in dem directory `.../demo' zu-
sammangefasst, sie koennen mit den Kommandos
cd demo;make
installiert werden. Sollen nur die deutschen Demonstrati-
onen installiert werden, kann dies durch
cd demo;make dt
erreicht werden, entsprechend die englischen durch
cd demo;make eng
Datenbankcompiler AMX
AMX-Programme laufen jetzt im current directory, d.h.
file-Namen muessen nicht laenger als volle Pfadnamen an-
gegeben werden.
Der AMX-Compiler hat den C-Compiler als Untermenge inte-
griert, d.h. die Benutzung von AMX(UNIX) entspricht der
Benutzung von cc(1).
Der AMX-Compiler kennt gegenueber dem C-Compiler keine
neuen Flags, alle Flags sind also Flags von cc(1).
Bei der Erzeugung von Datenbankprogrammen muss immer der
AMX-Compiler anstelle des C-Compilers verwendet werden.
Fuer das Linken eines Programmes muss das Flag `-o name'
zur Angabe des Programmnamens spezifiziert werden, um
das automatische Laden der Laufzeitbibliothek des AMX-
Compilers anzuweisen. Die Laufzeitbibliothek muss unter
dem Namen `.../lib/libamx.a' bereitgestellt werden, darf
also nach der Generierung nicht nach `/usr/lib' bzw.
`/lib' bewegt werden.
Beispiele:
1) Erzeuge Objektmodul aus einer AMX-Quelle
amx -c -O neuheit.x
2) Erzeuge Programm aus einem Objektmodul
amx -o neuheit neuheit.o
3) Erzeuge Programm aus einer AMX-Quelle
amx -O -o neuheit neuheit.x
4) Erzeuge Programm aus einer AMX- und einer C-Quelle
amx -O -o neuheit neuheit.x zusatz.c
5) Erzeuge Objektmodule aus einer AMX- und einer C-Quelle
amx -c -O neuheit.x zusatz.c
oder
amx -c -O neuheit.x;cc -c -O zusatz.c
6) Erzeuge Programm aus Objektmodulen
amx -o neuheit neuheit.o zusatz.o
Natuerlich koennen auch Bibliotheken verarbeitet werden,
bzw. `neuheit.o' kann in eine Bibliothek gestellt werden.
Auf jeden Fall muss mit dem AMX-Compiler gelinkt werden !
Neben dem AMX-Statement
## ing_db [flags] db_name
gibt es jetzt
## shared [flags] db_name
wobei `ing_db' die Datenbank exklusiv (also alleinig) und
`shared' die Datenbank parallel verwendbar eroeffnet.
Das neue AMX-Statement
## tuplelength rel_name c_var_name
stellt in der numerischen C-Variablen `c_var_name' die
Tupellaenge der Relation `rel_name' bereit.
Es gibt die Moeglichkeit Transaktionen (TA) zu formulie-
ren, die nutzerbezogene Datenbankkonsistenzen realisier-
ren. Eine TA wird durch
## use ([+]rel_name {, [+]rel_name})
eingeleitet und durch
## commit
beendet. Das Zeichen `+' gibt an, dass die Relation ge-
aendert werden soll (REPLACE, DELETE oder APPEND). Fehlt
diese Angabe, wird von der Relation gelesen (RETRIEVE).
Folgende Regeln sollten bei der Formulierung von TA's be-
achtet werden:
1) Immer `shared' verwenden, wenn nicht ausdruecklich die
alleinige Verwendung der Datenbank beabsichtigt ist.
2) Immer TA's formulieren, wenn Recherchen ueber mehr als
eine Relation gehen sollen.
3) Alle Aenderungen in TA's einkleiden.
4) Wenn eine TA laeuft, kann keine weiter TA begonnen
werden.
5) Innerhalb einer Recherche (RETRIEVE) kann keine TA be-
gonnen werden, die Recherche muss in die TA einge-
schlossen werden.
6) Innerhalb einer TA kann keine Recherche oder Aenderung
fuer eine Relation, die nicht Bestandteil der TA ist,
gestartet werden. Die Relation muss in die TA einge-
schlossen werden.
ON-LINE DOKUMENTATION:
Unter dem interaktiven ING_DB 6.3/4 Terminalmonitor
gibt es eine neue Form der on-line Hilfe.
Mit dem Kommando `\HELP name' kann eine Hilfe zu dem
Komplex `name' angefordert werden.
Das Kommando `\HELP' liefert eine Liste der verfueg-
baren Hilfen.
Mit dem Kommando `\help name' kann eine Kurzhilfe zu
dem Komplex `name' angefordert werden.
Das Kommando `\help' liefert eine Liste der verfueg-
baren Kurzhilfen.
Die Kommandos lassen sich `\H name' bzw. `\h name'
abkuerzen.
Die on-line Hilfe kann jetzt auch unter der shell in
Anspruch genommen werden (siehe MANR und REFR).
DOKUMENTATION:
Die aufbereitete Dokumentation befindet sich im cat-dir-
ectory, jedes file beinhaltet 20 Druckseiten, jede Seite
umfasst 66 Zeilen. Die Dokumentation ist in drei Teile
untergleidert (doc1.*, doc2.* und doc3.*), hinzu kommt
der online-Manual- (man.*) und der -Refernzteil (ref*).
Die nroff-Quellen stehen im dem directory `doc'.

View File

@ -1 +0,0 @@
banner DABA16 "" src $1 > /dev/lp

View File

@ -1,3 +0,0 @@
format $1<<!
y
!

View File

@ -1,2 +0,0 @@
echo -n INSERT ING_DB 6.3/4 DISTRIBUTION DISK $1
read ok

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,726 +0,0 @@
Referenz-Manual - 151 - OOOOVVVVQQQQPPPP
Bei der Konvertierung von int1, int2, int4, float4
oder float8 aus einem Zeichenkettenwert zu einem
numerischen Wert, muss der Zeichenkettenwert der
gu"ltigen Syntax genu"gen. Dieser Fehler entsteht,
wenn der Zeichenkettenwert nicht-numerische
Zeichen entha"lt.
4112 ovqp query vector overflowed
Gleicht Fehler 4100.
4113 compiler text space ran out
4114 compiler ran out of registers
Dieser Fehler tritt bei einer Experimental-Version
des Systems auf, er ist gegenwa"rtig nicht
relevant.
4199 you must convert your 6.0 secondary index before
running this query!
Das interne Format von Sekunda"r-Indizes wurde
zwischen den Versionen 6.0 und 6.1 von ING_DB
6.3/3 gea"ndert. Bevor entschieden wird, ob ein
Sekunda"r -Index verwendet wird, pru"ft OVQP, ob es
nicht ein 6.0 Index ist. Als Massnahme wird emp-
fohlen, den Sekunda"r-Index zu lo"schen und neu zu
erzeugen.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 152 - DDDDEEEECCCCOOOOMMMMPPPP
NNNNAAAAMMMMEEEE
Aufza"hlung der Decomposition-Fehlermeldungen
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
Fehlernummern 4500 - 4999.
BBBBEEEESSSSCCCCHHHHRRRREEEEIIIIBBBBUUUUNNNNGGGG
Diese Fehlermeldungen sind mit dem Prozess der Auf-
gliederung (Decomposition) einer Multi-Variablen Query
in eine Folge von Ein-Variablen Queries, die durch OVQP
ausgefu"hrt werden ko"nnen, verbunden.
FFFFEEEEHHHHLLLLEEEERRRR
4602 query involves too many relations to create aggre-
gate function intermediate result.
Bei der Ausfu"hrung von Aggregat-Funktionen ist es
gewo"hnlich notwendig, eine Zwischen-Relation fu"r
jjjjeeeeddddeeee Aggregat-Funktion zu erzeugen. Jedoch darf
keine Query mehr als sechs Variablen haben. Weil
Aggregat-Funktionen implizit die Anzahl der Varia-
blen in der Query einschliessen, ko"nnen sie diese
Grenze u"berschreiten. Sie mu"ssen entweder den
interaktiven Teil abbrechen und die Aggregat-
Funktion separat ausfu"hren oder sie mu"ssen ING_DB
6.3/3 abbrechen, um sich Unterstu"tzung fu"r mehr
Variablen je Query zu holen.
4610 Query too long for available buffer space (qbuf-
size).
4611 Query too long for available buffer space (varbuf-
siz)
4612 Query too long for available buffer space (sqsiz)
4613 Query too long for available buffer space (stack-
siz)
4614 Query too long for available buffer space (agbuf-
siz).
Dies ereignet sich, wenn die interne Form der
interaktiven Auflo"sung zu lang fu"r den
zugewiesenen Pufferbereich ist. Sie mu"ssen
entweder die interaktive Eingabe ku"rzen oder die
Auflo"sung neu starten. Der Name in Klammern gibt
den internen Namen des Puffers, der zu klein war,
an.
4615 Aggregate function is too wide or has too many
domains.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 153 - DDDDEEEECCCCOOOOMMMMPPPP
Die interne Form einer Aggregatfunktion darf nicht
mehr als 49 Doma"nen oder nicht mehr als 1010 Bytes
enthalten. Versuchen sie die Aggregatfunktion in
zwei oder mehr Teile zu gliedern.
4620 Target list for "retrieve unique" has more than 49
domains or is wider than 1010 bytes.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 154 - DDDDBBBBUUUU
NNNNAAAAMMMMEEEE
Aufza"hlung der Data_Base_Utility-Fehlermeldungen
SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
Fehlernummern 5000 - 5999
BBBBEEEESSSSCCCCHHHHRRRREEEEIIIIBBBBUUUUNNNNGGGG
Die Datenbank-Benutzungsfunktionen behandeln meist alle
Fragen, die direkt mit der Ausfu"hrung von Queries ver-
bunden sind. Die Fehlermeldungen, die generiert wer-
den, ergeben sich aus Syntaxpru"fungen und einigen
Ungereimtheiten bei der Semantikpru"fung.
FFFFEEEEHHHHLLLLEEEERRRR
5001 PRINT: bad relation name %0
Sie haben versucht eine Relation zu drucken, die
nicht existiert.
5002 PRINT: %0 is a view and can't be printed
Der einzige Weg eine Abbildung zu drucken, wird
durch "retrieve" realisiert.
5003 PRINT: Relation %0 is protected.
Sie sind nicht autorisiert zu dieser Relation
zuzugreifen.
5102 CREATE: duplicate relation name %0
Sie haben versucht eine Relation zu erzeugen, die
bereits existiert.
5103 CREATE: %0 is a system relation
Sie ko"nnen keine Relation erzeugen, die den selben
Namen wie eine System-Relation hat. Die System-
Abha"ngigkeiten gehen davon aus, dass die Systemre-
lationen "unique" (einmalig) sind.
5104 CREATE %0: invalid attribute name %1
Das geschieht, wenn sie versuchen eine Relation zu
erzeugen, deren Attribute la"nger als 12 Zeichen
sind.
5105 CREATE %0: duplicate attribute name %1
Attributnamen in einer Relation mu"ssen einmalig
(unique) sein. Sie haben versucht, einen doppel-
ten Namen zu erzeugen.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 155 - DDDDBBBBUUUU
5106 CREATE %0: invalid attribute format "%2" on attri-
bute %1
Die zugelassenen Formate einer Doma"ne sind c1-
c255, i1, i2, i4, f4 und f8. Irgendwelche andere
Formate generieren diesen Fehler.
5107 CREATE %0: excessive domain count on attribute %1
Eine Relation kann nicht mehr als 49 Doma"nen
haben. Der Ursprung dieser magischen Zahl ist in
Dunkelheit gehu"llt, es ist aber sehr schwer zu
a"ndern.
5108 CREATE %0: excessive relation width on attribute
%1
Die maximale Zahl von Bytes, die ein Tupel enthal-
ten darf, ist 1010. Dies ergibt sich daraus, dass
ein Tupel auf ein UNIX -"page" passen muss.
Beno"tigte Pointer brauchen 14 Byte, so dass 1010
von 1024 u"brigbleiben. Diese "magische Zahl" ist
schwer zu a"ndern
5201 DESTROY: %0 is a system relation
Das System wu"rde unverzu"glich aufho"ren zu
arbeiten, wenn sie ihm das anweisen.
5202 DESTROY: %0 does not exist or is not owned by you
Um eine Relation lo"schen zu ko"nnen, muss sie exis-
tieren und sie mu"ssen Eigentu"mer sein.
5203 DESTROY: %0 is an invalid integrity constraint
identifier
Die angegebenen Integerwerte identifizieren nicht
die Integrita"tsbedingungen der spezifizierten
Relation. Beispielsweise: Wenn sie eingeben "des-
troy permit parts 1, 2, 3" und 1, 2 oder 3 sind
nicht die Werte, die bei "help permit parts" aus-
gegeben werden, erhalten sie diesen Fehler.
5204 DESTROY: %0 is an invalid protection constraint
identifier
Die angegebenen Integerwerte identifizieren nicht
die Schutz-Bedingungen der spezifizierten Rela-
tion. Beispiel wie fu"r Fehler 5203.
5300 INDEX: can't find primary relation
Die Relation existiert nicht- pru"fen sie die
Rechtschreibung.
5301 INDEX: more than maximum number of domains
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 156 - DDDDBBBBUUUU
Ein Sekunda"rindex kann nicht mit mehr als sechs
Doma"nen erzeugt werden.
5302 INDEX: invalid domain %0
Sie haben versucht, einen Index auf eine Doma"ne zu
erzeugen, die nicht existiert.
5303 INDEX: relation %0 not owned by you
Sie mu"ssen Eigentu"mer der Relation sein, um sie zu
indizieren.
5304 INDEX: relation %0 is already an index
ING_DB 6.3/3 gestattet keine Tertia"rindizes.
5305 INDEX: relation %0 is a system relation
Sekunda"rindizes ko"nnen nicht auf Systemrelationen
erzeugt werden.
5306 INDEX: %0 is a view and an index can't be built on
it
Weil Abbildungen nicht physisch auf der Datenbank
gespeichert sind, ko"nnen darauf keine Indizes
errichtet werden.
5401 HELP: relation %0 does not exist
5402 HELP: can't find manual section "%0"
Entweder existiert der gewa"hlte Manual-Abschnitt
nicht oder ihr System hat keine On-Line-
Dokumentation.
5403 HELP: relation %0 is not a view
Sie haben "help view" (, damit wird eine Abbil-
dungsdefinition gedruckt) auf eine Nicht-Abbildung
gegeben. Beispielsweise: "help view overpaid"
druckt die "overpaid"-Abbildungsdefinition.
5404 HELP: relation %0 has no permissions on it granted
5405 HELP: relation %0 has no integrity constraints on
it
Sie haben versucht, die Schutz- oder
Integrita"tsbedingungen einer Relation zu drucken,
bei der diese nicht spezifiziert worden sind.
5410 HELP: tree buffer overflowed
5411 HELP: tree stack overflowed
Noch ein Pufferu"berlauf.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 157 - DDDDBBBBUUUU
5500 MODIFY: relation %0 does not exist
5501 MODIFY: you do not own relation %0
Sie ko"nnen nicht die Speicherstruktur einer Rela-
tion a"ndern, fu"r die sie nicht der Eigentu"mer
sind.
5502 MODIFY %0: you may not provide keys on a heap
Durch die Definition "heap" erhalten sie keine
Schlu"ssel.
5503 MODIFY %0: too many keys provided
Sie ko"nnen nur 49 Schlu"ssel auf einer Relation
bilden.
5504 MODIFY %0: can't modify system relation
Systemrelationen ko"nnen modifiziert werden, wenn
sie das ssssyyyyssssmmmmoooodddd Kommando in der Shell verwenden;
zum Beispiel
sysmod ddddbbbbnnnnaaaammmmeeee
5507 MODIFY %0: duplicate key "%1"
Sie ko"nnen eine Doma"ne nur einmal als Schlu"ssel
spezifizieren.
5508 MODIFY %0: key width (%1) too large for isam
Bei der Modifizierung einer Relation zu "isam"
darf die Breite des Schlu"sselfeldes 245 Byte nicht
u"berschreiten.
5510 MODIFY %0: bad storage structure "%1"
Die gu"ltigen Speicherstruktur-Namen sind heap,
cheap, isam, cisam, hash und chash.
5511 MODIFY %0: bad attribute name "%1"
Sie haben ein Attribut spezifiziert, das in der
Relation nicht existiert.
5512 MODIFY %0: "%1" not allowed or specified more than
once
Sie haben einen Parameter spezifiziert, der einem
anderen Parameter widerspricht, der nicht im Ein-
klang mit dem Speichermodus steht oder der bereits
spezifiziert worden ist.
5513 MODIFY %0: fillfactor value %1 out of bounds
Der ffffiiiillllllllffffaaaaccccttttoooorrrr muss zwischen 1 und 100 Prozent
liegen.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 158 - DDDDBBBBUUUU
5514 MODIFY %0: minpages value %1 out of bounds
MMMMiiiinnnnppppaaaaggggeeeessss muss gro"sser als 0 sein.
5515 MODIFY %0: "%1" should be "fillfactor", "max-
pages", or "minpages"
Sie haben einen unbekannten Parameter fu"r mmmmooooddddiiiiffffyyyy
verwendet.
5516 MODIFY %0: maxpages value %1 out of bounds
5517 MODIFY %0: minpages value exceeds maxpages value
5518 MODIFY %0: invalid sequence specifier "%1" for
domain %2.
Die Sequenz der Spezifikatoren kann ``ascending''
(aufsteigend) (oder ``a'') oder ``descending''
(fallend) (oder ``d'') in einem mmmmooooddddiiiiffffyyyy Kommando
sein. Zum Beispiel:
modify parts to heapsort on
pnum:ascending,
pname:descending
5519 MODIFY: %0 is a view and can't be modified
Nur physische Relationen ko"nnen modifiziert wer-
den.
5520 MODIFY: %0: sequence specifier "%1" on domain %2
is not allowed with the specified storage struc-
ture.
Eine Sortierung wird nur unterstu"tzt, wenn nach
hhhheeeeaaaappppssssoooorrrrtttt oder cccchhhheeeeaaaappppssssoooorrrrtttt modifiziert wird.
5600 SAVE: can't save system relation "%0"
Die Systemrelationen haben Sicherungsdatum (save
date). Es ist garantiert, dass sie wa"hrend der
Lebensdauer der Datenbank bestehen.
5601 SAVE: bad month "%0"
5602 SAVE: bad day "%0"
5603 SAVE: bad year "%0"
Das war ein ungu"ltiger Monat, ein ungu"ltiger Tag
oder eben ein ungu"ltiges Jahr fu"r ING_DB 6.3/3.
5604 SAVE: relation %0 does not exist or is not owned
by you
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 159 - DDDDBBBBUUUU
5800 COPY: relation %0 doesn't exist
5801 COPY: attribute %0 in relation %1 doesn't exist or
it has been listed twice
5803 COPY: too many attributes
Jede "dummy"-Doma"ne und "real"-Doma"ne, die im
copy-Statement aufgelistet wird, za"hlt als ein
Attribut. Die Grenze sind 150 Attribute.
5804 COPY: bad length for attribute %0. Length="%1"
5805 COPY: can't open file %0
Bei einem copy "from" ist das file fu"r den Nutzer
nicht lesbar.
5806 COPY: can't create file %0
Bei einem copy "into" ist das file fu"r den Nutzer
nicht cre=>ierbar. Das wird gewo"hnlich dadurch
verursacht, das der Nutzer keine Schreiberlaubnis
im spezifizierten Directory hat.
5807 COPY: unrecognizable dummy domain "%0"
Bei einem copy "into" wurde ein "dummy"-
Doma"nenname verwendet, um bestimmte Zeichen in das
unix-file einzufu"gen. Der angegebene Doma"nenname
ist nicht gu"ltig.
5808 COPY: domain %0 size too small for conversion.
There were %2 tuples successfully copied from %3
into %4
Wenn "copy" ausgefu"hrt wird (ausser bei Zeichen
nach Zeichen), pru"ft "copy", ob das Zielfeld gross
genug ist, um den Wert unterzubringen.
5809 COPY: bad input string for domain %0. Input was
"%1". There were %2 tuples successfully copied
from %3 into %4
Dies geschieht, wenn Zeichenketten nach Integer-
oder Gleitkommazahlen konvertiert werden. Die
Zeichenketten enthalten manchmal andere als nume-
rische Zeichen (0-9, +, , blank etc.).
5810 COPY: unexpected end of file while filling domain
%0.
There were %1 tuples successfully copied from %2
into %3
5811 COPY: bad type for attribute %0. Type="%1"
Die einzigen Typen, die akzeptiert werden sind i,
f, c und d.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 160 - DDDDBBBBUUUU
5812 COPY: The relation "%0" has a secondary index.
The index(es) must be destroyed before doing a
copy "from"
"copy" kann keine Sekunda"rindizes u"berarbeiten.
Deshalb kann copy "from" nicht auf eine indexierte
Relation angewendet werden.
5813 COPY: You are not allowed to update the relation
%0
Sie ko"nnen "copy" nicht in eine Systemrelation
oder einen Sekunda"rindex ausfu"hren.
5814 COPY: You do not own the relation %0.
Sie du"rfen "copy" nicht zur U"bertragung einer
Relation verwenden, fu"r die sie nicht der
Eigentu"mer sind. Ein copy "into" ist gestattet,
aber ein copy "from" nicht.
5815 COPY: An unterminated "c0" field occurred while
filling domain %0. There were %1 tuples success-
fully copied from %2 into %3
Eine Zeichenkette, die durch ein copy "from" unter
Verwendung der "c0" Option gelesen wird, darf
nicht mehr als 1024 Zeichen haben.
5816 COPY: The full pathname must be specified for the
file %0
Der file-Name fu"r "copy" muss mit "/" beginnen.
5817 COPY: The maximum width of the output file can't
exceed 1024 bytes per tuple
Der Datenbereich, der zu einem File ausgegeben
werden soll, u"berschreitet fu"r jedes Tupel 1024
Byte. Das geschieht gewo"hnlich nur, wenn das For-
mat falsch angegeben wurde oder eine Menge grosser
"dummy"-Doma"nen spezifiziert wurden.
5818 COPY: %0 is a view and can't be copied
Nur eine physische Relation kann kopiert werden.
5819 COPY: Warning: %0 duplicate tuples were ignored.
Bei einem copy "from" wurden doppelte Tupel in der
Relation festgestellt.
5820 COPY: Warning: %0 domains had control characters
which were converted to blanks.
5821 COPY: Warning: %0 c0 character domains were trun-
cated.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR
Referenz-Manual - 161 - DDDDBBBBUUUU
Zeichenketten-Doma"nen im c0 Format sind genauso
lang wie die Doma"nen. Sie hatten einen
Doma"nenwert, der gro"sser als die La"nge war, er
wurde abgeschnitten.
5822 COPY: Relation %0 is protected.
Sie sind nicht autorisiert, zu dieser Relation
zuzugreifen.
ING_DB 6.3/3 Juni 16, 1989 EEEERRRRRRRROOOORRRR

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,528 +0,0 @@
Anwendung - 312 - ZZZZIIIIPPPP
_2._7. EEEEiiiinnnnggggaaaabbbbeeeeggggeeeennnneeeerrrraaaattttoooorrrr ZZZZIIIIPPPP
---- VVVVeeeerrrrssss.... 2222....1111 ****
_2._7._1. EEEEiiiinnnnlllleeeeiiiittttuuuunnnngggg
Der vorliegende Eingabegenerator ist den Bedingungen von
UNIX -Versionen angepasst, fu"r die eine tttteeeerrrrmmmmccccaaaapppp und das
Softwarepaket ccccuuuurrrrsssseeeessss verfu"gbar sind. Da ZIP als Hilfe fu"r
die Eingabe und Anzeige von Daten in der Umgebung von AMX-
und EQUEL-Programmen entworfen wurde, soll nachfolgend die
Anwendung auch an solchen Beispielen gezeigt werden.
Die Erstellung einer ZIP-Prozedur erfolgt in drei Schritten:
1. Mit dem Editor wird eine Maske entworfen, die deckungs-
gleich spa"ter auf dem Bildschirm abzubilden ist. Varia-
blenfelder werden durch # eingeleitet, die Anzahl der
nachfolgenden Zeichen bis zum Leerzeichen bzw. Newline
(auch EOF) oder einem beliebigen Begrenzungszeichen
legt die Stelligkeit fest (einschliesslich #). Bei
Gleitkommazahlen bestimmt der Punkt die Konver-
tierungsvorschrift.
2. Die Textmaske (Filename: vorgeschlagenes Postfix _m)
wird einschliesslich mo"glicher steuernder Flags als
Argument fu"r das Kommando zzzziiiipppp angegeben und ein C-
Quellfile generiert.
3. Die Verbindung zwischen Maske und Variablen ergibt sich
aus dem Dialog. Die Flags -hp ziehen zusa"tzliche Fragen
fu"r Hilfen bzw. Pru"fungen nach sich. Der C-Compiler
wird automatisch gerufen, bei Flag -l erfolgt die
Einordnung in eine Arbeitsbibliothek.
Bei Verwendung des Flag -z wird ein Zeilenoffset ausgegeben.
Er berechnet sich aus der Anzahl der Newlines + EOF im Aus-
gangsfile. Mit diesem Offset soll der Entwurf des Gesamt-
bildes auf dem Schirm kontrolliert werden.
Bevor eine ZIP-Prozedur im Programm genutzt werden kann, ist
die Initialisierungsprozedur iiiinnnniiiittttzzzziiiipppp(((()))) zu rufen - sie ini-
tialisiert auch die Verwendbarkeit der ccccuuuurrrrsssseeeessss -Makros bzw.
Prozeduren. Die u"blichen Ausgaben zu stdout (printf, write,
putchar usw.) du"rfen innerhalb des Gu"ltigkeitsbereiches des
sogenannten "Standard-Screen" (stdscr) nicht verwendet wer-
den, weil dann Konsistenzprobleme auftreten. Dafu"r stehen
die curses-Makros (addstr(), addch()) zur Verfu"gung.
AAAAnnnnmmmmeeeerrrrkkkkuuuunnnngggg:::: Zum Binden des gesamten Programmes (AMX, EQC
u.a.) sind die Bibliotheken libcurses.a und libzip.a einzu-
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 313 - ZZZZIIIIPPPP
ziehen.
Die direkte Einordnung des Generators in das Datenbanksystem
unter Nutzung der System-Relation "attribute" ist vorla"ufig
nicht geplant. Die Praxis zeigt, dass die Eingabe und
Korrektur aller Doma"nen in einem Menue die Ausnahme ist -
als weiteres Problem steht dann, in welcher Reihenfolge die
Fu"hrungstexte den Spalten zugeordnet werden sollten. Hierzu
wa"re wieder ein Dialog oder eine Zuordnung in der Phase des
Editierens der Maske notwendig. Es ist in der Regel so,
dass erst in Abha"ngigkeit vom Wert des Schlu"ssels entweder
vom Programm oder vom Bedienenden entschieden wird, wie sich
der weitere Ablauf gestaltet ("append", "replace" oder
"delete") bzw. die Doma"nen anderer Relationen einzubeziehen
sind.
_2._7._2. RRRReeeeaaaalllliiiissssiiiieeeerrrruuuunnnngggg
ZIP wird durch "make all" im Directory "../../src/zip"
installiert. Das Kommando zip wird in "../../bin" eingeord-
net. Ruft man zip ohne Parameter, wird eine Kurzinformation
zur Anwendung gegeben (in "../../man/zip"). Im Directory
"../src/zip" ist ein Directory "tut" enthalten, an dem man
sich analog dieser Dokumentation orientieren kann.
Die verwendete Relation "anschrift" hat folgende Struktur:
Relation: anschrift
---------
Besitzer: ing_db
Tupellaenge: 199
Verfallsdatum: Wed Mar 30 15:21:36 1988
Tupelanzahl: 99
Speicherstruktur: ISAM
Relationentyp: Nutzerrelation
Domaenname Typ Laenge Schluessel
-------------------------------------------
bn i 4 1
ans1 c 40
ans2 c 40
ans3 c 30
ort c 30
plz c 5
kubez c 48
bezirk i 2
-------------------------------------------
Zur Veranschaulichung der Verfahrensweise folgendes AMX-
Programm:
-------------------------------------------------------------
## shared hardsoft
/* Eingabe und Korrektur von Anschriften */
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 314 - ZZZZIIIIPPPP
## long BN;
## char ANS1[40]; /* 1.Zeile Anschrift */
## char ANS2[40]; /* 2.Zeile Anschrift */
## char ANS3[30]; /* 3.Zeile Anschrift, Strasse/Psf. */
## char ORT[30]; /* Ort */
## char PLZ[5]; /* Postleitzahl */
## char KUBEZ[48]; /* Kurzbezeichnung Anschrift */
## int BEZIRK; /* individueller Bezirksschluessel */
amx()
{
int flag;
int clr;
int zl;
initzip(); /*Initialisierung von curses und zip*/
## open anschrift
do
{
BN = 0;
ANS1[0] = ANS2[0] = ANS3[0] = ORT[0] = '\0';
PLZ[0] = '\0';
KUBEZ[0] = '\0';
clr = 0;
if (!ansbn(clr++, 0)) break; /*Schirm wird gloescht,*/
if (!BN) break; /*dr anschliessend erhoeht*/
flag = 0;
## scan anschrift $bn=BN (ANS1=$ans1,ANS2=$ans2,ANS3=$ans3,
## ORT=$ort,PLZ=$plz,KUBEZ=$kubez,BEZIRK=$bezirk)
## {
++flag;
if (!ansein(clr, 1)) break; /*kein Schirm loeschen,*/
/*alle Variablen erst anzeigen*/
## replace ($bn=BN,$ans1=ANS1,$ans2=ANS2,$ans3=ANS3,
## $ort=ORT,$plz=PLZ,$kubez=KUBEZ,$bezirk=BEZIRK)
## }
if (!flag)
{
if (!ansein(clr, 1)) continue;
## append anschrift ($bn=BN,$ans1=ANS1,$ans2=ANS2,
## $ans3=ANS3,$ort=ORT,$plz=PLZ,$kubez=KUBEZ,$bezirk=BEZIRK)
}
}
while (BN);
## commit
## close anschrift
}
-------------------------------------------------------------
Als Eingabe- bzw. Korrekturprozeduren kommen ansbn() und
ansein() vor. Mit der Trennung in zwei Masken bzw.
Prozeduren wird vermieden, dass ansein() bei BN = 0 noch
Werte abfordert und das gleiche Programm zum Anfu"gen neuer
Tupel bzw. zum A"ndern vorhandener Verwendung findet. Im
ersten Schritt werden die Masken aaaannnnssssbbbbnnnn____mmmm und aaaannnnsssseeeeiiiinnnn____mmmm mit
dem Editor aufgestellt, dabei ist zu beachten, dass in den
Zeilen, bei denen mit Fu"hrungstexten begonnen wird, ganz
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 315 - ZZZZIIIIPPPP
links kein Leerzeichen steht - fu"hrende Leerzeichen werden
nicht ausgegeben:
MMMMaaaasssskkkkeeee aaaannnnssssbbbbnnnn____mmmm::::
Erfassg./Korr. von Anschriften ==> Abbruch: Betriebsnummer = 0
Betriebsnummer(8-St.): #9999999<
MMMMaaaasssskkkkeeee aaaannnnsssseeeeiiiinnnn____mmmm::::
Anschrift-Betriebsbezeichnung1: #aaaaaaaaaaaaaaaaaaaaaaaaa..a<
..........Betriebsbezeichnung2: #aaaaaaaaaaaaaaaaaaaaaaaaa..a<
..........Strasse/Nr. : #aaaaaaaaaaaaaaaaaaaaaaaaaaaa<
..........Ort : #aaaaaaaaaaaaaaaaaaaaaaaaaaaa<
..........Postleitzahl : #aaa<
Kurzbezeichnung: #aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<
Bezirk : #9<
In den ersten beiden Zeilen wurden, um eine bessere Darstel-
lung zu erreichen, einige a ausgeblendet (entspricht ..).
AAAAbbbbllllaaaauuuuffff::::
Der Eingabe-Generator wird mit
zzzziiiipppp -pl LIBTUT ansbn
gerufen.
Darstellung des Dialogs:
-------------------------------------------------------------
+--------------------------------+
| EINGABE-GENERATOR >>> ZIP <<< |
| Version 2.1 (curses) 01.02.89 |
| EVK Olbernhau |
+--------------------------------+
Der Abfragezyklus bezieht sich jeweils auf eine Variable!
Zur Orientierung werden die Texte der Maske mit ausgegeben.
Erfassg./Korr. von Anschriften ==> Abbruch: Betriebsnummer = 0
Betriebsnummer(8-St.):
>>>Datentyp (i/l/c/f/d) > l
>>>vereinbarter Name (Feld mit []) > BN
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Name Pruefprozedur mit () u.Arg.> przk()
>>>Pruef-Art:Zei.=z/Wort=w > w
>>>Hilfe einordnen? (j/n) > j
>>>Hilfe-Art: Text=t / Prozedur=p > t
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 316 - ZZZZIIIIPPPP
>>>Name File f. Hilfe-Text m. (z,s) > bnhlp(3,15)
9999999<
Okay? >j
-------------------------------------------------------------
Zur Orientierung im Dialog gibt ZIP alle Fu"hrungstexte
entsprechend der Textmaske mit aus.
Parallel zum Dialog wird das File ansbn_i angelegt:
-pl LIBTUT ansbn
long BN j przk() w bnhlp(3,15) t
Die Pru"fung der Statistik-Betriebsnummer erledigt die
Prozedur przk():
-------------------------------------------------------------
/* Pruefziffernkontrolle Modul 11 (8-stellig) */
przk(pn) long *pn;
{
long nr;
int bew[8];
int erg, sg, i, divr, anr, pz, p;
nr = *pn;
bew[0] = 0;
bew[1] = 4;
bew[2] = 8;
bew[3] = 5;
bew[4] = 10;
bew[5] = 9;
bew[6] = 7;
bew[7] = 3;
p = nr % 10;
sg = 0;
for (i = 0; i < 8; i++ )
{
anr = nr % 10;
erg = anr * bew[i];
sg = sg + erg;
nr = nr / 10;
}
divr = sg % 11;
switch(divr)
{
case 0 : pz = 5;
break;
case 2 : pz = 4;
break;
case 3 : pz = 9;
break;
case 4 : pz = 3;
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 317 - ZZZZIIIIPPPP
break;
case 5 : pz = 8;
break;
case 6 : pz = 2;
break;
case 7 : pz = 7;
break;
case 8 : pz = 1;
break;
case 9 : pz = 6;
break;
default: pz = 0;
}
if (p == pz) return(1);
else return(0);
}
-------------------------------------------------------------
Der Ru"ckkehrcode dieser Prozedur, die ebenfalls in LIBTUT
steht, wird ausgewertet (1 ist TRUE, 0 ist FALSE). Der
Return-Code 0 veranlasst nach einem Hupton zur erneuten
Eingabe (Kursor auf Feldanfang), die Eingabe von
Fragezeichen (?) fu"hrt zur Ausgabe der Hilfe "pruefzif-
ferngesichert" - der Text dazu steht im File bnhlp, das bei
der Generierung eingezogen wird. Die Prozedur ansein() wird
mit
zip -a 3 -hl LIBTUT ansein
generiert. Der Dialog la"uft wie folgt ab:
-------------------------------------------------------------
+--------------------------------+
| EINGABE-GENERATOR >>> ZIP <<< |
| Version 2.1 (curses) 01.02.89 |
| EVK Olbernhau |
+--------------------------------+
Der Abfragezyklus bezieht sich jeweils auf eine Variable!
Zur Orientierung werden die Texte der Maske mit ausgegeben.
Anschrift-Betriebsbezeichnung1:
>>>Datentyp (i/l/c/f/d) > c
>>>vereinbarter Name (Feld mit []) > ANS1[40]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<
>>>Datentyp (i/l/c/f/d) > c
>>>vereinbarter Name (Feld mit []) > ANS2[40]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<
>>>Datentyp (i/l/c/f/d) > c
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 318 - ZZZZIIIIPPPP
>>>vereinbarter Name (Feld mit []) > ANS3[30]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaaaaaaaaaaaaaaaaaaaaaaaaaaa<
>>>Datentyp (i/l/c/f/d) > c
>>>vereinbarter Name (Feld mit []) > ORT[30]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaaaaaaaaaaaaaaaaaaaaaaaaaaa<
>>>Datentyp (i/l/c/f/d) > c
>>>vereinbarter Name (Feld mit []) > PLZ[5]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaa<
Kurzbezeichnung:
>>>Datentyp (i/l/c/f/d) > c
>>>vereinbarter Name (Feld mit []) > KUBEZ[48]
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > n
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa<
>>>Datentyp (i/l/c/f/d) > i
>>>vereinbarter Name (Feld mit []) > BEZIRK
>>>mit Korrekturmoeglichkeit?(j/n) > j
>>>Hilfe einordnen? (j/n) > j
>>>Hilfe-Art: Text=t / Prozedur=p > t
>>>Name File f. Hilfe-Text m.(z,s) > bezhlp(15,3)
9<
Okay? >>j
-------------------------------------------------------------
Die nach > stehenden Eingaben sind jeweils mit <CR> (Car-
riage Return) abzuschliessen.
Folgendes i-File entsteht:
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX
Anwendung - 319 - ZZZZIIIIPPPP
-a 3 -hl LIBTUT ansein
char ANS1[40] j n n
char ANS2[40] j n n
char ANS3[30] j n n
char ORT[30] j n n
char PLZ[5] j n n
char KUBEZ[48] j n n
int BEZIRK j n bezhlp(15,3) t
Es wa"re denkbar, die PLZ mit "isdigit()" zu pru"fen, in
Abweichung zu oben entstu"nde das i-File:
-a 3 -phl LIBTUT ansein
char ANS1[40] j n n
char ANS2[40] j n n
char ANS3[30] j n n
char ORT[30] j n n
char PLZ[5] j isdigit() z
char KUBEZ[48] j n n
int BEZIRK j n bezhlp(15,3) t
Beachten sie, dass \t als Trennzeichen steht. Bei
A"nderungen im *_i-File du"rfen die Trennzeichen nicht ver-
sehentlich gelo"scht werden!
Es wird bei der Erzeugung der Ein-/Ausgabe-Prozedur davon
ausgegangen, dass die C-Variablen an Spalten bestimmter
Relationen u"bergeben bzw. von diesen u"bernommen werden.
Deshalb sind die C-Variablen grundsa"tzlich global dekla-
riert, entsprechend erwartet die erzeugte Prozedur eine glo-
bale Deklaration zur Wert-U"bergabe/-U"bernahme. Fu"r alle zu
realisierenden Konvertierungen werden die Prozeduren (im
Sinne von Parameter-Prozeduren) aus /usr/lib/libzip.a
verwendet. Die manuelle Ersetzung der Funktionsprozeduren
aus der Standard-Bibliothek von C (libc.a) fu"hrt zu Fehlern.
Die Reihenfolge der Objekte in der Arbeits-Bibliothek (hier
LIBTUT) spielt eine Rolle, sofern Pru"fprozeduren verwendet
werden (nach der ZIP-Prozedur !). Die Arbeits-Bibliothek
muss im Bindekommando vor /usr/lib/libzip.a stehen.
Pruefprozeduren werden in Anlehnung an die Funktionen aus
"ctype" (isdigit(), isascii() usw.) so gestaltet, dass der
Rueckkehrcode 1 fuer TRUE und 0 fu"r FALSE liefert. Das gilt
sowohl fu"er Prozeduren die zeichenweise (z) als auch fu"r
solche, die wortweise (w) pru"fen. Das header-File <ctype.h>
wird fu"r ZIP-Prozeduren standardma"ssig eingezogen.
Als kleine zusa"tzliche Hilfe von ZIP steht eine Menue-
Prozedur mmmmeeeennnnzzzziiiipppp(((()))) zur Verfu"gung, die ein im main() verein-
bartes Zeichenkettenfeld auf wa"hlbaren Positionen invers
ausgibt und die angeklickte Zeile (1..n) als Ru"ckkehrwert
liefert (s. Teil III, Beispiel "Terminkontrolle").
ING_DB 6.3/3 Juni 16, 1989 UUUUNNNNIIIIXXXX

File diff suppressed because it is too large Load Diff

View File

@ -1,990 +0,0 @@
############################################################
############################################################
## ##
## ##
## ##
## ##
## ##### # ##### # # ##
## # # # # # # # # ##
## # # # # # # ##
## ##### # # # ####### ##### ##
## # ####### # # # ##
## # # # # # # # # ##
## ##### # # ##### # # ##
## ##
## ##
## ##
## ##
## # # ####### ###### ####### ##
## # # # # # # # # ##
## # # # # # # # # ##
## # # # # # ###### # ##
## # # # # # # # # ##
## # # # # # # # # ##
## ## ## ####### # # # ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
############################################################
############################################################
Juni 22, 1989
SSSSaaaacccchhhhwwwwoooorrrrttttvvvveeeerrrrzzzzeeeeiiiicccchhhhnnnniiiissss
Abbildung ....................... 147, 148, 154, 156, 181, 293, 332
Abbruch ......................... 27, 40, 77, 78, 121, 245, 249,
315, 326, 327
Abfragesprache .................. 254, 256
Abha"ngigkeit .................... 99, 154, 299, 313
access .......................... 67, 78, 246
Addition ........................ 9, 173, 296
Aggregat ........................ 10, 13, 14, 50, 141, 142, 147,
148, 152, 153, 186, 187, 188, 190,
191, 192, 194, 231
Aktion .......................... 108, 114, 255, 260, 261, 266, 268
Aktualisierungskommandos ........ 199
alter/ego-flag .................. 64
amx ............................. 2, 42, 50, 55, 64, 65, 67,
68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 89, 121,
130, 132, 254, 255, 256, 257, 258,
259, 260, 261, 262, 263, 264, 265,
266, 267, 268, 269, 312, 313, 314,
320, 321, 322, 323, 324, 325, 326,
327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337
Anmeldung ....................... 17
Anweisung ....................... 92, 150, 227, 257, 258, 275, 276,
277, 278, 279, 280, 295, 299, 300,
301, 306
any ............................. 8, 13, 14, 97, 187, 192
append .......................... 8, 12, 16, 19, 25, 32, 35,
36, 41, 42, 54, 62, 63, 69,
70, 77, 94, 95, 140, 141, 143,
144, 173, 199, 206, 207, 212, 213,
220, 224, 225, 232, 242, 243, 261,
262, 264, 268, 314, 330
Arbeitsbibliothek ............... 312
Archivierung .................... 121
Arithmetik ...................... 275, 296
ascending ....................... 51, 52, 103, 104, 105, 158
ascii ........................... 8, 13, 16, 35, 39, 58, 84,
150, 345
asynchron ....................... 40, 241
atan ............................ 8, 13
Attribut ........................ 9, 10, 11, 15, 35, 36, 39,
40, 41, 42, 51, 58, 59, 61,
78, 84, 89, 103, 115, 117, 140,
141, 154, 155, 157, 159, 180, 181,
206, 221, 229, 230, 234, 236, 260,
264, 265, 280, 281, 292, 294, 313
backup .......................... 80, 210
Basisrelation ................... 62, 63, 100, 115, 264
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 348 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
batch-files ..................... 114
batchline ....................... 278, 283, 311, 344
batch-prozessor ................. 110
Berechtigung .................... 32, 37, 47, 54, 55, 56, 58,
82, 86, 99, 112, 119, 136, 203
Bereichsdeklaration ............. 178
Betriebssystem .................. 3, 86, 132
Bibliothek ...................... 67, 68, 93, 121, 122, 259, 312
boolean ......................... 297, 299, 300
boole-wert ...................... 297, 298, 306
branch .......................... 242, 243
break ........................... 314, 316, 317, 323, 324, 325, 328,
329, 330, 336
by .............................. 8, 10, 14, 38, 54, 80, 83,
86, 89, 148, 153, 155, 156, 157,
158, 160, 175, 180, 181, 193, 194,
195, 196, 197, 205, 212, 229, 230,
237, 259, 295, 311
case ............................ 300, 301, 311, 316, 317, 323, 324,
325, 328, 329, 330
cc .............................. 67, 68, 93, 259, 325, 326
C-Compiler ...................... 67, 68, 78, 93, 257, 259, 312
char-Konstante .................. 94
char-Pointer .................... 94
chash ........................... 51, 52, 53, 103, 104, 157, 216,
233
cheap ........................... 36, 51, 52, 59, 103, 104, 110,
157, 158, 204, 216, 217, 232
chmod ........................... 88
cisam ........................... 51, 52, 53, 103, 104, 157, 216,
217, 223
C-Objektfile .................... 271
col ............................. 38, 83, 121, 127, 209, 212, 272,
274, 276, 281, 288, 289, 296, 302,
303, 304, 306, 311, 339, 340, 343,
344
comment ......................... 94, 146
commit .......................... 69, 70, 75, 76, 77, 314, 330
Compiler ........................ 67, 68, 78, 92, 123, 125, 151,
255, 256, 257, 258, 259, 260, 266,
270
complement ...................... 297, 298, 311
compressed ...................... 110, 341
concat .......................... 8, 13, 16, 141, 150
const ........................... 32, 45, 91, 142, 146, 148, 155,
156, 262, 264, 265
control ......................... 87, 146, 160, 211
conversion ...................... 159
copy ............................ 8, 32, 36, 37, 38, 39, 40,
41, 42, 48, 49, 50, 64, 80,
81, 82, 83, 84, 85, 86, 94,
95, 100, 144, 159, 160, 161, 206,
207, 208, 209, 210, 211, 212, 213,
220, 232, 234, 258, 272, 281, 342,
343
count ........................... 8, 13, 14, 15, 74, 155, 187,
191, 192, 196, 246, 251, 336, 337
C-Preprozessor .................. 92, 97
crash ........................... 65, 110, 224, 226
creatdb ......................... 64, 86, 87, 88, 90, 112, 136,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 349 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
143, 203, 237
creater ......................... 42, 89, 90
C-Statement ..................... 93, 261, 263, 342
ctype ........................... 319
current_directory ............... 247
dash ............................ 38, 83, 212
database ........................ 86, 134, 140, 142, 254, 261, 262,
263
Date ............................ 2, 3, 5, 6, 8, 9, 25,
32, 37, 41 ff. , 59, 62 ff. ,
78 ff. , 86 ff. , 104, 106, 108,
109, 112, 114, 115, 116, 118, 121,
122, 123, 125, 126, 127, 136, 137,
140, 142, 150, 154, 156, 158, 160,
163, 165, 171, 174, 179, 181, 192,
194, 198, 199, 203 ff. , 236, 237,
241, 242, 252 ff. , 263, 268 ff. ,
273, 282, 290, 291, 292, 293, 304,
305, 307, 311, 312, 313, 320, 331,
338, 339, 341, 344
db .............................. 8, 9, 40, 42, 54, 62, 64,
65, 68, 70, 80, 86, 87, 89,
90, 91, 96, 97, 99, 100, 103,
106, 108, 109, 112, 114, 117, 118,
126, 138, 143, 149, 154, 155, 156,
157, 158, 159, 160, 161, 180, 203,
204, 227, 236, 237, 238, 254, 260,
328, 342
debug-Information ............... 128
decomp .......................... 138, 152, 153
default ......................... 311, 317, 324, 325, 328, 329, 330
deferred ........................ 136, 224, 225
define .......................... 8, 28, 29, 32, 33, 43, 50,
54, 55, 62, 63, 81, 87, 116,
141, 143, 145, 252, 273, 280, 282,
289, 304, 306, 307, 311, 324, 339,
343, 344
Deklaration ..................... 57, 69, 77, 95, 167, 261, 319
delete .......................... 8, 16, 19, 25, 32, 44, 45,
54, 63, 69, 70, 76, 91, 96,
143, 144, 199, 201, 224, 232, 261,
262, 268, 313, 329, 330
delim ........................... 29, 213
demo ............................ 3, 72, 73, 74, 75, 76, 77,
87, 90, 94, 112, 115, 126, 129,
137, 163, 269, 270, 281
desc ............................ 52, 103, 105, 123, 125, 126, 127,
129, 158, 270, 271, 342
Deskription-File ................ 281, 305
destroy ......................... 8, 32, 42, 44, 45, 48, 50,
53, 55, 57, 63, 64, 65, 87,
88, 90, 91, 100, 101, 114, 115,
143, 144, 155, 160, 202, 203, 212,
226, 343
Dezimalpunkt .................... 24, 106, 109
Diagnose ........................ 168
direction ....................... 37, 40, 85, 94, 144
directory ....................... 20, 64, 68, 80, 87, 88, 90,
119, 159, 217, 219, 220, 236, 237,
246, 258, 271, 313
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 350 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
Disjunktion ..................... 12
divr ............................ 316
do .............................. 2, 3, 5, 6, 9 ff. , 18,
30 ff. , 46 ff. , 56, 58 ff. ,
69, 77, 78, 80, 82 ff. , 89,
93, 95, 100, 102 ff. , 109, 113,
115, 121 ff. , 136, 139 ff. ,
146 ff. , 152 ff. , 164 ff. , 172,
175, 178, 179, 181, 182, 186, 187,
191, 194 ff. , 198, 199, 204 ff. ,
217 ff. , 227, 229, 230, 232 ff. ,
242, 247, 249, 256 ff. , 273, 274,
278, 280 ff. , 288, 289, 294, 300,
301, 304 ff. , 311, 313, 314, 321,
322, 323, 326, 334, 337 ff. ,
Druckaufbereitung ............... 291
dummy ........................... 38, 83, 159, 160, 209, 211, 212,
213
duplicate ....................... 142, 154, 157, 160, 198
Editor .......................... 19, 21, 25, 123, 174, 175, 207,
238, 242, 246, 247, 312, 314, 333,
339, 345
Eingabefile ..................... 342, 343
Eingabe-generator ............... 121, 315, 317
Eingabemodus .................... 19
Eintrittsfunktion ............... 70, 258
else ............................ 74, 283, 299, 311, 317, 328, 329,
336, 337, 340, 344
enda ............................ 279, 311, 340
endo ............................ 278, 279, 306, 311, 340
equel ........................... 65, 69, 92, 93, 94, 95, 96,
97, 98, 121, 138, 146, 254, 255,
257, 265, 269, 312
Erfassungsmaske ................. 121
error ........................... 4, 5, 77, 78, 97, 130, 134,
137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150,
151, 152, 153, 154, 155, 156, 157,
158, 159, 160, 161, 168, 172, 255
evaluation ...................... 255
exceed .......................... 158, 160
eval ............................ 242, 252
execution ....................... 134, 258
exit ............................ 78, 94, 97, 247, 264, 324, 336
fillfactor ...................... 32, 51, 53, 81, 104, 157, 158,
215, 216, 217, 219, 223
flag ............................ 22, 64, 65, 67, 68, 71, 80,
82, 85, 86, 87, 89, 90, 91,
92, 94, 100, 101, 103, 105, 106,
108, 109, 110, 112, 113, 114, 117,
118, 119, 121, 122, 125, 126, 127,
133, 136, 142, 203, 227, 228, 259,
262, 263, 271, 312, 314, 327, 328,
329, 330
float ........................... 8, 10, 11, 69, 121, 122, 141,
146, 150, 151, 258, 260, 263
format .......................... 9, 10, 11, 13, 16, 32, 37,
40, 42, 56, 59, 82, 85, 89,
93, 106, 109, 133, 134, 144, 151,
155, 161, 204, 205, 207, 208, 209,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 351 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
211, 212, 229, 249, 268, 274, 287,
339
Funktion ........................ 10, 13, 16, 23, 24, 26, 27,
28, 29, 58, 97, 106, 109, 140,
142, 152, 211, 226, 227, 229, 233,
240, 249, 250, 252, 253, 276, 290,
294, 303, 319
Geltungsbereich ................. 13
Genauigkeit ..................... 9, 10, 37, 82, 89, 235, 236
gid ............................. 136
Gleitkomma ...................... 8, 9, 10, 37, 82, 106, 109,
146, 150, 159, 181, 205, 210, 292,
312
global .......................... 14, 23, 69, 77, 93, 96, 121,
135, 258, 319
group ........................... 136, 258, 273, 283, 284, 306, 307,
311, 340, 345
Gruppe .......................... 119, 171, 230, 231, 242, 243, 283,
285, 286, 287, 305, 306, 308, 309,
310, 320, 322, 336
hash ............................ 46, 49, 51, 52, 53, 103, 104,
110, 157, 211, 214, 215, 216, 218,
219, 220, 221, 222, 223, 232, 233,
234
heap ............................ 6, 36, 41, 42, 49, 51, 52,
53, 89, 103, 104, 110, 157, 158,
164, 181, 206, 211, 212, 214, 215,
217, 220, 222, 223, 225, 232, 233,
236, 269, 272, 321, 322, 323, 324,
338, 339, 341, 342, 343
help ............................ 8, 17, 32, 45, 46, 47, 65,
91, 99, 143, 145, 155, 156, 164,
180, 181, 205, 242, 248
identifikator ................... 301
include ......................... 97, 240, 242, 244, 248, 249, 250,
323, 324, 326, 331, 335, 336
index ........................... 8, 32, 42, 45, 47, 48, 49,
51, 61, 65, 81, 89, 100, 101,
103, 110, 114, 115, 116, 117, 118,
141, 144, 151, 155, 156, 160, 180,
221, 222, 223, 226, 236, 260, 264,
266, 268
indizes ......................... 48, 49, 55, 80, 81, 85, 100,
156, 223, 236, 257, 260, 264, 265,
268
insert .......................... 233
integrities ..................... 116, 180, 260
Integrita"t ...................... 32, 41, 43, 45, 47, 48, 50,
80, 91, 99, 100, 114, 116, 140,
147, 148, 155, 156, 224, 257, 260
integrity ....................... 8, 32, 41, 43, 45, 46, 47,
50, 81, 91, 99, 143, 144, 145,
148, 155, 156, 236, 264
interaktiv ...................... 2, 4, 6, 17, 19, 23, 93,
110, 133, 135, 137, 150, 152, 213,
225, 238, 252
Interface ....................... 67, 254
Interpreter ..................... 150
Interrupt ....................... 115, 116, 121, 241, 242, 335
into ............................ 8, 32, 37, 39, 40, 41, 53,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 352 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
59, 62, 64, 82, 84, 85, 94,
100, 110, 159, 160, 197, 198, 204,
208, 209, 210, 211, 212, 213, 237,
272, 281, 342, 343
invalid ......................... 78, 140, 141, 145, 154 ff. , 158
isam ............................ 46, 48, 49, 51, 52, 53, 100,
103, 104, 110, 157, 211, 214, 215,
216, 217, 219, 220, 221, 222, 223,
232, 234, 235, 236, 313
isascii ......................... 319
isdigit ......................... 319
join ............................ 218
kaschieren ...................... 21, 27, 28, 29
key ............................. 32, 51, 141, 144, 157, 206, 214,
217, 221
Klausel ......................... 12, 301
Kommando ........................ 2, 4, 5, 17, 18, 19, 20,
23, 25, 45, 64, 81, 86, 87,
90 ff. , 99,
102, 106, 109, 110, 112, 113, 116,
119, 120, 140, 144, 145, 146, 157,
158, 163, 164, 170, 173, 180, 199,
202, 204, 205, 207, 212, 222, 224,
226, 238 ff. , 270, 272, 273, 312, 313
Kommentar ....................... 7, 94, 125, 137, 146, 263
Komponente ...................... 3, 47, 123, 234, 254, 260
konsistenz ...................... 78, 312
Konstante ....................... 8, 9, 10, 95, 97, 265, 277,
290
Konvertierung ................... 10, 11, 16, 35, 40, 58, 85,
93, 122, 151, 257, 265, 319
Kopie ........................... 32, 37, 38, 39, 40, 41, 49,
64, 67, 80, 82, 83, 84, 85,
87, 93, 133, 160, 206, 207, 208,
209, 210, 211, 212, 213, 226, 281,
337
Korrektur ....................... 121, 122, 172, 174, 240, 313, 314,
315, 317, 318, 333, 334, 335
Korrespondenz ................... 270
Kursor .......................... 121, 324, 326, 331, 334
label ........................... 20, 23, 244
Language ........................ 3, 163
large ........................... 157
last_page ....................... 282, 304
Laufzeit ........................ 38, 40, 54, 67, 68, 78, 83,
92, 94, 95, 96, 97, 98, 108,
110, 125, 147, 150, 254, 256, 257,
258, 259
Leerseite ....................... 276
length .......................... 159, 206, 290, 293, 296, 311, 340
libc ............................ 122, 312
libq ............................ 93
library ......................... 98
line ............................ 121, 127, 134, 140, 141, 142, 143,
144, 145, 146, 168, 172, 177, 198,
207, 209, 231, 272, 274, 275, 276,
281, 282, 283, 284, 288, 289, 296,
297, 302, 303, 304, 306, 307, 311,
339, 340, 343, 345
list ............................ 4, 11, 13, 18, 32, 33, 43,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 353 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
54, 57, 99, 127, 128, 137, 141,
142, 145, 150, 153, 159, 167, 168,
181, 188, 190, 193, 199, 212, 213,
242, 250, 259, 268, 269, 271, 273,
274, 275, 277, 278, 279, 280, 285,
286, 287, 289, 290, 291, 294, 300,
305, 308, 310, 339, 340, 343, 346
La"nge ........................... 10, 16, 18, 37, 38, 39, 40,
68, 82, 83, 84, 89, 102, 127,
146, 154, 161, 181, 205, 208, 209,
211, 217, 221, 229, 235, 257, 260,
267, 274, 277, 288, 290, 294, 295,
303, 304
Logarithmus ..................... 13
login ........................... 17, 22, 54, 64, 71, 119, 130,
133, 135, 136, 137, 163, 164, 239
logout .......................... 22, 202, 251
long ............................ 69, 97, 121, 122, 141, 145, 146,
150, 152, 258, 262, 263, 264, 314,
316, 326, 327, 331, 333, 335
macro ........................... 240, 243, 244, 246, 247, 250, 252
main ............................ 70, 97, 258, 319, 323, 334
make ............................ 313
Makro ........................... 3, 4, 18, 19, 20, 21, 22,
23, 24, 25, 26, 27, 28, 29,
30, 31, 238, 239, 240, 243, 244,
245, 246, 247, 248, 249, 250, 251,
252, 253, 332
Manual .......................... 4, 19, 34, 66, 97, 123, 156,
203, 206, 237, 258
Marke ........................... 20, 21, 30, 244, 250, 346
Maske ........................... 121, 291, 312, 313, 314, 315, 317,
333, 334, 336
match ........................... 8, 15, 140, 141, 183, 184, 185,
186
Maximum ......................... 13, 155, 160, 187
maxpage ......................... 52, 53, 104, 144, 158, 216
maxu ............................ 192
Mehrfachverzweigung ............. 300
menue ........................... 30, 313, 319, 324, 326, 331, 332,
334, 335, 342, 343
min ............................. 8, 9, 13, 14, 50, 51, 52,
53, 81, 103, 104, 106, 109, 136,
137, 142, 144, 158, 187, 192, 201,
214, 216, 221, 223, 229, 230, 233,
234, 254, 261, 265, 276, 279, 289,
300, 304, 311
mkdir ........................... 88
Modifikation .................... 52, 104, 147, 238, 254, 255, 333
modify .......................... 8, 32, 42, 44, 45, 48, 51,
52, 53, 59, 60, 81, 91, 100,
103, 104, 105, 115, 118, 143, 144,
157, 158, 212, 215, 216, 217, 218,
219, 223, 226, 232, 233, 236, 272,
339, 343
modulo .......................... 13, 173, 296
monitor ......................... 3, 4, 17, 18, 19, 20, 21,
22, 23, 25, 26, 31, 110, 135,
164, 175, 226, 238, 239, 240, 241,
242, 243, 244, 245, 246, 247, 248,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 354 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
249, 250, 251, 252, 253
morpheme ........................ 255
move ............................ 325, 328, 331, 332, 335, 336, 337
ms-dos .......................... 132
Mustersuche ..................... 15
Negation ........................ 12, 21, 27, 244, 296, 298
new-page ........................ 276
next ............................ 280, 282, 294, 295, 306, 311
Notation ........................ 243, 263, 296
number .......................... 46, 146, 155, 206, 276, 277, 279,
280, 290, 292, 294, 295, 297, 298,
300, 301
numerisch ....................... 9, 10, 13, 16, 35, 36, 39,
40, 58, 68, 84, 93, 140, 142,
150, 151, 199, 207, 209, 210, 245,
257, 264, 265, 267, 289, 290, 294,
296, 298
Nutzer .......................... 6, 9, 17, 18, 21, 22, 23,
25, 26, 28, 30, 35, 37, 42,
44, 47, 48, 54, 56, 58, 59,
60, 62, 69, 78, 80, 81, 82,
86, 89, 97, 99, 100, 106, 108,
110, 112, 114, 118, 119, 120, 130,
133, 135, 136, 137, 148, 159, 164,
180, 181, 186, 202, 203, 204, 208,
215, 219, 224, 226, 227, 228, 237,
239, 246, 257, 260, 263, 269, 288,
289, 296, 303, 313, 321, 322, 323,
331, 338, 339, 341, 342
occurred ........................ 150, 160
occurs .......................... 147
offset .......................... 312
Operator ........................ 9, 10, 12, 13, 16, 21, 24,
27, 110, 141, 142, 145, 146, 150,
173, 191, 213, 244, 245, 298
Option .......................... 22, 56, 59, 67, 93, 121, 122,
160, 216, 227, 228, 238, 239, 240,
241, 248, 273, 334
overflow ........................ 140, 146, 149, 150, 151, 156
ovqp ............................ 138, 150, 151, 152
page ............................ 127, 158, 273, 274, 275, 276, 281,
282, 283, 284, 288, 302, 303, 304,
307, 311, 321, 322, 323, 338, 339,
341, 342, 344
panic ........................... 114
Parameter ....................... 18, 19, 20, 23, 24, 25, 26,
27, 28, 29, 30, 95, 97, 99,
102, 113, 130, 134, 157, 158, 243,
246, 251, 252, 274, 276, 290, 292,
293, 302, 313, 319, 326
parser .......................... 21, 94, 138, 140, 141, 142, 143,
144, 145, 146, 150, 213, 240, 241,
247, 250
parsing ......................... 146
passwd .......................... 120
pathname ........................ 160, 208, 236
pattern ........................ 8, 15, 141, 183, 184, 185, 186
permission ...................... 106, 156
permit .......................... 8, 32, 43, 45, 46, 47, 54,
55, 65, 81, 91, 99, 142, 143,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 355 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
145, 148, 149, 155
Pfadname ........................ 19, 20, 21, 25, 37, 80, 82,
85, 87, 110, 238, 246, 323
pointer ......................... 94, 95, 96, 97, 155, 326
Positionierung .................. 121, 276, 289, 291, 331, 334
Preprozessor .................... 67, 70, 97, 255
primary ......................... 155
prima"r .......................... 45, 46, 47, 48, 51, 52, 53,
91, 100, 103, 104, 115, 223, 224,
225, 227, 238, 264, 266, 338
print ........................... 8, 17, 33, 53, 56, 65, 70,
71, 72, 73, 74, 75, 76, 77,
102, 106, 107, 113, 143, 144, 154,
164, 165, 166, 177, 181, 198, 200,
203, 242, 250, 261, 262, 264, 268,
270, 324
priorita"t .................... 298
proc ............................ 65, 109, 110, 134, 136, 138, 150,
251, 282, 301, 302, 311, 339, 344
Profile ......................... 163
Programm ........................ 3, 19, 20, 21, 25, 26, 61,
67, 68, 69, 70, 78, 80, 92,
117, 121, 122, 123, 206, 211, 221,
224, 240, 242, 251, 253, 254, 255,
256, 257, 258, 259, 261, 263, 264,
269, 272, 273, 274, 281, 297, 299,
301, 303, 305, 306, 312, 313, 314,
320, 324, 326, 339, 343
Projektion ...................... 261, 264, 265, 266, 268
Prompt .......................... 17, 22, 110, 238, 239, 240, 246,
247, 248, 249, 250, 253
protect ......................... 42, 89, 116, 148, 154, 155, 161,
180, 221, 236, 260, 264
provide ......................... 157
Prozedur ........................ 73, 93, 121, 254, 255, 274, 275,
284, 287, 301, 302, 312, 314, 315,
316, 317, 318, 319, 323, 324, 326,
331, 332, 333, 334, 335, 337, 342,
343
Prozesstabelle .................. 110, 136, 137
Pseudodoma"ne .................... 211
Pseudo-zeichen .................. 209
Puffer .......................... 71, 141, 149, 150, 152, 156, 226,
243, 257, 261, 263, 268
purge ........................... 61, 64, 65, 108, 114, 116, 117,
134, 203, 206, 224, 226, 227, 228
qual ............................ 12, 13, 14, 15, 32, 33, 35,
43, 44, 50, 54, 55, 58, 59,
62, 70, 71, 93, 95, 116, 141,
144, 145, 147, 169, 171, 173, 183,
187, 188, 190, 196, 220, 221, 222,
223, 232, 262, 266, 267, 285, 286,
287, 322, 326, 337
quel ............................ 3 ff. ,
68, 70, 73, 78, 80, 81, 83,
84, 89, 92, 93, 94, 99, 100,
102, 107, 109 ff. , 120, 123, 125,
133, 136, 137, 140, 141, 162 ff. ,
209, 213, 225, 237, 238, 240, 241,
247, 257, 271, 272, 312, 323, 333,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 356 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
342, 345
query ........................... 14, 18, 19, 22, 25, 95, 110,
138, 140 ff. , 163 ff. , 168 ff. ,
178, 179, 182, 183, 185 ff. , 204,
213, 214, 215, 217, 219, 222 ff. ,
quoting-symbole ................. 243
range ........................... 8, 9, 12, 14, 16, 22, 33,
35, 44, 50, 53, 55, 57, 58,
60, 62, 63, 141, 145, 167, 177,
178, 182, 199, 201, 204, 212, 214,
218, 222, 225, 343
r_code .......................... 123, 125, 127, 129, 271, 273, 274
Recherche ....................... 2, 62, 69, 168, 178, 197, 220,
223, 224, 254, 257, 260, 264, 329
recover ......................... 65, 110, 114, 115, 226
redeclared ...................... 29
references ...................... 42, 89, 115, 116, 221
Rekursion ....................... 257
rekursiv ........................ 73, 74, 254, 266
relational ...................... 65, 67, 109, 142, 254, 259
Relationen ...................... 6, 32, 33, 41, 42, 45, 46,
47, 48, 50, 52, 55, 56, 59,
62, 65, 67, 70, 71, 73, 80,
81, 85, 89, 91, 99, 100, 104,
108, 114, 115, 116, 118, 146, 149,
158, 164, 166, 179, 181, 199, 201,
203, 204, 205, 206, 213, 214, 217,
221, 223 ff. , 236, 237, 256, 257,
259, 260, 263, 264, 269, 270, 313,
319, 320, 321, 322, 323, 331, 338,
339, 341, 342
relop ........................... 261, 262, 267
repeat ......................... 300, 302, 311, 339
replace ......................... 8, 16, 19, 24, 25, 26, 28,
29, 33, 54, 58, 70, 94, 141,
143, 144, 199, 200, 202, 217, 220,
224, 232, 261, 262, 268, 313, 314,
328, 329, 330, 339
Report .......................... 2, 4, 114, 122, 123, 124, 125,
126, 127, 128, 129, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278,
279, 280, 281, 282, 283, 284, 285,
286, 287, 288, 289, 290, 291, 292,
293, 294, 295, 296, 297, 298, 299,
300, 301, 302, 303, 304, 305, 306,
307, 308, 309, 310, 311, 338, 339,
340, 341, 342, 343, 344, 345, 346
Reservierungszeit ............... 61, 117
Reset ........................... 165, 242, 251
restore ......................... 64, 65, 108, 114, 115, 116, 118,
203, 224, 226, 227
Resultat ........................ 11, 13, 53, 59
retrieve ........................ 8, 11, 12, 14, 16, 19, 25,
30, 33, 36, 37, 48, 53, 54,
55, 56, 59, 60, 61, 62, 63,
70 ff. ,
82, 93, 94, 95, 96, 99,
100, 110, 143, 144, 145, 153, 154,
166, 167, 168, 169, 170, 172, 173,
174, 175, 176, 177, 178, 179, 181,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 357 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
182, 183, 184, 185, 186, 187, 188,
189, 190, 191, 192, 193, 194, 195,
196, 197, 198, 201, 204, 214, 215,
218, 219, 222, 223, 231, 232, 237,
269, 339, 343
Return .......................... 73, 282, 301, 302, 311, 317, 318,
325, 335, 336, 339, 344
rmdir ........................... 88
Root ............................ 258
rparen .......................... 38, 83, 212, 261, 262, 265, 266,
268
rp_desc ......................... 123, 129, 270
rp .............................. 129
Satzbegrenzer ................... 39, 84
save ............................ 8, 33, 42, 46, 59, 60, 61,
108, 117, 145, 158, 206
scale ........................... 291, 292, 293, 297, 311
scan ............................ 25, 72, 73, 74, 75, 260, 261,
262, 265, 266, 267, 268, 269, 314,
327, 328, 329, 330, 331, 337
Schachtelungstiefe .............. 249
Schlu"ssel ....................... 7, 11, 23, 27, 28, 35, 42,
45, 47, 48, 49, 51, 52, 53,
54, 59, 60, 89, 91, 94, 100,
103, 104, 105, 141, 157, 182, 214,
215, 217, 219, 221, 223, 230, 232,
233, 234, 235, 236, 261, 266, 268,
274, 280, 311, 313, 334, 336
Schreiberlaubnis ................ 159
Schutz .......................... 147, 148, 155, 156, 225
secondary ....................... 46, 151, 160, 222
section ......................... 32, 46, 47, 156
Sekunda"rindex ................... 32, 37, 45, 48, 82, 91, 100,
110, 140, 141, 156, 160, 221, 222,
223, 224, 225, 227
semantik ........................ 123, 154, 255, 275
sequence ........................ 158
set-anweisung ................... 296
setjmp .......................... 97, 258
-s-flag ......................... 64
shared .......................... 68, 70, 72, 73, 74, 75, 76,
77, 313, 326
shell ........................... 2, 3, 4, 19, 21, 64, 110,
112, 135, 142, 157, 242, 251, 252,
342, 343
short ........................... 69, 258, 263
Sicherungsdatum ................. 158
Signal .......................... 28, 97, 241, 247
size ............................ 152, 159
Skalierungsfaktor ............... 291, 292
sortorder ....................... 32, 51, 65, 103, 105, 144
Spaltenbreite ................... 106, 109
specifier ....................... 158
sperren ......................... 258
spezifikation ................... 81, 213
Sprachbeschreibung .............. 263
Sprungmarke ..................... 25, 30
stack ........................... 146, 149, 150, 156
Standard ........................ 11, 18, 24, 27, 28, 29, 49,
52, 59, 61, 80, 85, 86, 87,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 358 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
92, 100, 104, 106, 109, 110, 117,
119, 125, 126, 127, 128, 129, 133,
216, 222, 223, 227, 238, 240, 249,
250, 252, 268, 274, 275, 276, 292,
293, 294, 295, 312, 319, 326
startup ......................... 26, 130, 135, 137, 239
Startvorgang .................... 21, 26, 238
statement ....................... 4, 7, 9, 12, 19, 23, 30,
35, 37, 38, 39, 40, 42, 44,
46, 47, 48, 51, 52, 54, 55,
56, 57, 58, 59, 60, 62, 63,
82, 83, 84, 85, 89, 93, 94,
95, 97, 99, 100, 103, 104, 141,
142, 148, 149, 177, 209, 211, 232,
247, 263, 264, 266
Status .......................... 17, 86, 99, 109, 110, 115, 116,
119, 136, 241
storage ......................... 32, 46, 51, 65, 78, 103, 144,
157, 158, 206
string .......................... 9, 93, 95, 97, 145, 146, 159,
210, 213, 254, 262, 296
Struktur ........................ 51, 74, 80, 81, 95, 96, 103,
119, 164, 203, 204, 214, 219, 220,
223, 226, 229, 233, 236, 242, 256,
257, 269, 313, 320
Subschema ....................... 32, 43
Suchpfad ........................ 234
Superuser ....................... 90, 136, 258
support ......................... 142
switch .......................... 128, 282, 297, 298, 299, 304, 311,
316, 323, 325, 328, 329
Symbol .......................... 5, 15, 38, 83, 141, 143, 144,
146, 168, 172, 239, 240, 246, 261,
274, 291, 292
synchron ........................ 39, 84, 241, 249, 251
Syntax .......................... 5, 7, 11, 16, 21, 62, 68,
77, 93, 113, 123, 140, 144, 145,
150, 151, 154, 168, 172, 216, 254,
255, 275, 278, 280, 295, 296, 297,
299, 300, 301, 303
sysmod .......................... 53, 64, 65, 114, 116, 118, 157,
203, 204, 221
target .......................... 70, 71, 73, 141, 142, 143, 153,
168, 181, 186, 194, 262, 264, 265,
268
template ........................ 23, 24, 26, 27, 28, 29
termcap ......................... 122, 312, 326
then ............................ 273, 282, 283, 284, 288, 299, 300,
304, 306, 307, 311, 340, 344, 345
tid ............................. 147, 268
time ............................ 32, 43, 54, 98, 142, 145, 163,
242, 252, 282, 290, 311
trace ........................... 136
tree ............................ 42, 89, 115, 116, 141, 149, 156,
180, 221, 260
Trennzeichen .................... 319
true ............................ 27, 128, 245, 289, 297, 298, 299,
300, 306, 311, 317, 319
truncated ....................... 44, 45, 51, 91, 103, 212
Tupel ........................... 3, 6, 9, 12 ff. , 19, 25,
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 359 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
31 ff. , 40, 41, 44 ff. , 51,
57 ff. , 62, 67, 68, 70, 73,
78, 82, 91, 93, 103, 105, 127,
141, 147, 148, 155, 160, 164, 165,
167, 169, 171, 178, 181, 184, 187,
191, 192, 194, 198, 199, 201,
204 ff. , 210 ff. , 225, 229 ff. ,
247, 257, 259 ff. , 264, 266, 268,
269, 272, 274, 275, 278, 279, 280,
281, 288, 294, 300, 303, 305, 306,
313, 314, 321, 322, 323, 338, 339,
341, 342
type ............................ 8, 27, 46, 69, 93, 129, 140,
141, 142, 150, 159, 185, 206, 226,
263, 265, 267, 270
-u-flag ......................... 237
uid ............................. 136
unary ........................... 142
underscore ...................... 271
unexpected ...................... 159
unique .......................... 8, 13, 33, 59, 143, 144, 145,
153, 154
Unix ............................ 2, 4, 17, 19, 22, 32, 37,
38 ff. , 63 ff. , 132, 133, 136,
155, 159, 163, 174, 175, 203, 205,
206 ff. , 212, 226, 227, 229, 237,
251, 253 ff. ,
Unterbrechung ................... 77, 97, 241
Unterlauf ....................... 10, 16, 146, 150, 267
until ........................... 8, 33, 46, 61, 145, 206
update .......................... 11, 48, 70, 100, 110, 136, 140,
147, 160, 220, 224, 225, 226, 264
User ............................ 6, 8, 9, 65, 86, 88, 109,
110, 119, 120, 130, 135, 136, 137,
138, 139, 140, 148, 203, 206, 239,
247, 258, 262, 263
value ........................... 78, 141, 142, 147, 150, 157, 158,
262, 265, 267, 268, 270, 280, 294,
295, 296, 297, 299, 300, 306, 311,
340
var ............................. 5, 7, 9, 10, 16, 32, 33,
37, 38, 43, 44, 50, 54, 57,
58, 69, 77, 82, 83, 93, 94,
95, 96, 97, 121, 122, 128, 138,
141, 145, 148, 150, 152, 177, 184,
199, 201, 208, 217, 254, 256, 257,
258, 262, 264, 266, 267, 270, 274,
276, 277, 278, 280, 282, 288, 289,
293, 296 ff. , 306, 311, 312, 314,
315, 317, 333, 334, 339, 343
Verkettung ...................... 14, 16, 247
Verknu"pfungsoperator ............ 297
Verschachtelung ................. 299, 301
view ............................ 8, 32, 33, 43, 45, 46, 47,
62, 63, 65, 78, 81, 99, 143,
145, 147, 148, 154, 156, 158, 160,
264
violation ....................... 148
virtuell ........................ 33, 62
Vorrangregeln ................... 21
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 360 - SSSSAAAACCCCHHHHWWWWOOOORRRRTTTT
warning ......................... 160
Wertebereich .................... 8, 10, 27, 181, 219, 220, 223,
245, 293
where ........................... 8, 12, 13, 14, 15, 16, 32,
33, 35, 43, 44, 45, 51, 53,
54, 55, 58, 59, 60, 62, 63,
72, 76, 91, 93, 96, 169, 170,
173, 174, 175, 176, 177, 178, 179,
183, 184, 185, 187, 189, 190, 191,
194, 195, 196, 197, 198, 200, 201,
202, 204, 214, 215, 216, 217, 218,
219, 220, 222, 223, 343
which ........................... 160
while ........................... 159, 160, 300, 311, 314, 323, 324,
336
width ........................... 155, 157, 160, 206
with ............................ 150, 158, 272, 274, 281, 293, 294,
304, 306, 311, 339, 343
work ............................ 246
zero ............................ 212
zip ............................ 65, 121, 122, 312 ff. , 326,
331 ff. ,
Zugriff ......................... 2, 35, 37, 42, 43, 44, 45,
46, 47, 48, 51, 52, 54, 55,
56, 58, 60, 67, 71, 78, 80,
81, 82, 89, 91, 95, 99, 100,
103, 104, 106, 116, 118, 141, 204,
214, 219, 222, 229 ff. , 254, 257,
260, 261, 263, 266, 269, 280
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB

View File

@ -1,528 +0,0 @@
################################################################
################################################################
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ### # # ##### ###### ###### ##
## # ## # # # # # # # ##
## # # # # # # # # # ##
## # # # # # #### # # ###### ##
## # # # # # # # # # # ##
## # # ## # # # # # # ##
## ### # # ##### ####### ###### ###### ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ### # # # # # # ####### ##
## # ## # # # # # # # ##
## # # # # # # # # # # ##
## # # # # ####### # # # # ##
## # # # # # # ####### # # ##
## # # ## # # # # # # ##
## ### # # # # # # ####### # ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
## ##
################################################################
################################################################
Maerz 29, 1989
IIIInnnnhhhhaaaallllttttssssvvvveeeerrrrzzzzeeeeiiiicccchhhhnnnniiiissss
1. Referenz-Manual * ....................................... 4
1.1. Anfragesprache * ...................................... 7
1.1.1. Beschreibung zur Anfragesprache Quel von ING_DB
6.3/3 * ................................................ 7
1.1.1.1. Kommentare * ...................................... 7
1.1.1.2. Namen * ........................................... 7
1.1.1.3. Schlu"sselworte * .................................. 7
1.1.1.4. Konstanten * ...................................... 8
1.1.1.4.1. Zeichenketten-Konstanten (Strings) * ............ 8
1.1.1.4.2. Ganzzahlige Konstanten (Integer) * .............. 8
1.1.1.4.3. Gleitkomma- (floating_point) Konstanten * ....... 8
1.1.1.5. Konstante Operatoren .............................. 9
1.1.1.6. Attribute <attribute> * ........................... 9
1.1.1.7. Arithmetische Operatoren * ........................ 9
1.1.1.8. Ausdru"cke <a_expr> * .............................. 10
1.1.1.9. Formate <format> * ................................ 10
1.1.1.10. Format Konvertierung * ........................... 10
1.1.1.11. Zielliste <target_list> * ........................ 11
1.1.1.12. Vergleichsoperatoren <comparison_operator>
und Klauseln <clause> * ................................. 12
1.1.1.13. Logische Operatoren <logical_operator>
und Qualifikation <qualification>
(auch <qual>) * ......................................... 12
1.1.1.14. Funktionale Ausdru"cke <functional_expression> * .. 13
1.1.1.15. Aggregat-Ausdru"cke * ............................. 13
1.1.1.15.1. Aggregat-Operatoren <aggregation_operator> * ... 13
1.1.1.15.2. Einfache Aggregate <simple_aggregate> * ........ 13
1.1.1.15.3. Das any Aggregat * ............................. 14
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 362 - IIIINNNNHHHHAAAALLLLTTTT
1.1.1.15.4. Aggregat-Funktionen * .......................... 14
1.1.1.15.5. Aggregate u"ber "einmalige"-Werte * ............. 14
1.1.1.16. Spezifische Zeichenketten-Operatoren * ........... 15
1.1.1.16.1. Mustersuche auf Zeichenketten
("Pattern matching") * .................................. 15
1.1.1.16.2. Verkettung * ................................... 16
1.1.1.16.3. ascii - numerisch zu
Zeichenketten wandeln * ................................. 16
1.1.2. Der interaktive Terminal-Monitor * .................. 17
1.1.2.2. Nachrichten und Prompt-Meldungen * ................ 17
1.1.2.3. Kommandos * ....................................... 18
1.1.2.4. Makros ** ......................................... 21
1.1.2.5. Springen ** ....................................... 21
1.1.2.6. Initialisierung ** ................................ 21
1.1.2.7. Flags * ........................................... 22
1.1.3. Kurzbeschreibung des Makro-Prozessors ** ............ 23
1.1.3.1. Inhalt und Leistung * ............................. 23
1.1.3.2. Arbeitsweise des Makro-Prozessors ** .............. 23
1.1.3.3. Bestandteile eines Makro ** ....................... 23
1.1.3.4. Textskandierung ** ................................ 24
1.1.3.5. Parameter in Makros ** ............................ 24
1.1.3.6. Spezielle Makros ** ............................... 25
1.1.3.7. Funktions-Makros ** ............................... 26
1.1.3.8. Berechnung arithmetischer Ausdru"cke ** ............ 27
1.1.3.9. Parametervorverarbeitung (prescan) ** ............. 28
1.1.3.10. Definition von Substitutions-Makros ** ........... 28
1.1.3.11. Kaschieren (quoting oder concealing) ** .......... 28
1.1.4. U"bersicht der Anfrage-Kommandos * ................... 32
1.2. Datenbank-UNIX -Kommandos * ........................... 64
1.2.1. U"bersicht zu den Kommandos unter UNIX * ............ 64
1.3. UNIX Report-Kommandos * .............................. 123
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 363 - IIIINNNNHHHHAAAALLLLTTTT
1.4. Files * ............................................... 130
1.4.1. U"bersicht * ......................................... 130
1.5. Error * ............................................... 138
1.5.1. U"bersicht ........................................... 138
2. Anwenderdokumentation
ING_DB 6.3/3 - Teil II ............................ 162
2.1. Anwendung der QUEL * .................................. 163
2.2. Arbeit mit Datenbanken * .............................. 203
2.2.1. Vorbemerkung * ...................................... 203
2.2.2. Erzeugung neuer Relationen mit QUEL ................. 204
2.2.3. Das Kopieren von Daten aus und in eine
Datenbank .............................................. 206
2.2.3.2. Typische Fehler ................................... 210
2.2.3.3. Spezielle Mo"glichkeiten ........................... 211
2.2.3.3.1. Physische Kopie (bulk copy) ..................... 211
2.2.3.3.2. Pseudodoma"nen (Dummy Domains) ................... 211
2.2.3.3.3. Abschneiden (Truncation) ........................ 212
2.2.3.3.4. Spezielle Begrenzer (Specifing Delimitors) ...... 213
2.2.3.3.5. Aufhebung der Begrenzer (Quoting) ............... 213
2.2.4. Speicherstrukturen fu"r Relationen ................... 213
2.2.4.2. Heap .............................................. 214
2.2.4.3. Hash .............................................. 214
2.2.4.4. Isam .............................................. 214
2.2.4.5. Spezifizierung der Speicherstruktur ............... 215
2.2.4.6. Haupt-(primary) und
U"berlauf-(overflow) Seiten ............................ 215
2.2.4.7. Spezifizierung des Freiraumes
auf einer Seite (free space) ......................... 215
2.2.4.8. Verdichtung (compression) ......................... 216
2.2.4.9. Zwei Varianten zu einem Problem ................... 217
2.2.4.10. Vergleich von heap, hash und isam ................ 220
2.2.4.11. U"berlauf-Seiten .................................. 220
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 364 - IIIINNNNHHHHAAAALLLLTTTT
2.2.4.12. Eindeutige Schlu"ssel ............................. 221
2.2.4.13. Systemkataloge ................................... 221
2.2.5. Sekunda"rindizes ..................................... 222
2.2.6. Wiederherstellung (Recovery) und
Aktualisierung (Update) ............................... 224
2.2.6.2. Deferred Update und Batch Update .................. 224
2.2.6.2.2. Beseitigung der Auswirkung von Systemfehlern .... 224
2.2.6.3. Die Verhinderung endloser Queries ................. 225
2.2.6.3.1. Beschleunigung der A"nderungszeiten
von Sekunda"rindizes .................................. 225
2.2.6.3.2. Abschalten des deferred update .................. 225
2.2.6.4. Restore ........................................... 226
2.2.6.5. Purge ............................................. 227
2.3. Zugriffsmethoden und **
Datenlokalisierung .................................. 229
2.3.1. Einleitung .......................................... 229
2.3.2. Grundkonzepte von ING_DB ............................ 229
2.3.2.2. Schlu"sselbegriff von ING_DB ....................... 230
2.3.2.3. Seitenketten ...................................... 231
2.3.3. Zugriffstechniken von ING_DB ........................ 232
2.3.3.2. Heapsort .......................................... 232
2.3.3.3. Hash .............................................. 233
2.3.3.4. Isam .............................................. 234
2.3.4. Die Gestaltung des Datenbankfilesystems
fu"r ING_DB ................................................. 236
2.3.4.2. Bewertung des Relationennamens .................... 237
2.4. Monitor ** ............................................ 238
2.4.1. Einfu"hrung .......................................... 238
2.4.2. Modifikationen durch Optionen ....................... 238
2.4.3. Startvorgang und Arbeitszyklus ...................... 238
2.4.4. Arbeit mit dem Monitor-Puffer ....................... 240
2.4.5. Synchrone Beendigung und
asynchrone Unterbrechung ............................ 241
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 365 - IIIINNNNHHHHAAAALLLLTTTT
2.4.6. Struktur der Monitor-Kommandos ...................... 242
2.4.7. Beschreibung der Monitor-Kommandos .................. 243
2.4.7.1. Append ............................................ 243
2.4.7.2. Branch ............................................ 243
2.4.7.3. Chdir ............................................. 245
2.4.7.4. Editor ............................................ 246
2.4.7.5. Go ................................................ 247
2.4.7.6. Help .............................................. 248
2.4.7.7. Include und Read .................................. 248
2.4.7.8. Mark .............................................. 249
2.4.7.9. List .............................................. 250
2.4.7.10. Monitor .......................................... 250
2.4.7.11. Print ............................................ 250
2.4.7.12. Quit ............................................. 251
2.4.7.13. Reset ............................................ 251
2.4.7.14. Shell ............................................ 251
2.4.7.15. Time und Date .................................... 252
2.4.7.16. Eval ............................................. 252
2.4.7.17. Write ............................................ 253
2.5. AMX ** ................................................ 254
2.5.1. Einleitung .......................................... 254
2.5.2. Entwurf ............................................. 254
2.5.3. Umgebung ............................................ 257
2.5.4. Compilation ......................................... 259
2.5.5. Begriffe ............................................ 259
2.5.6. Syntaktische Regeln ................................. 261
2.5.7. Grammatik ........................................... 262
2.5.8. Sprachbeschreibung .................................. 263
2.5.9. Selektion ........................................... 266
2.5.10. Projektion ......................................... 266
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 366 - IIIINNNNHHHHAAAALLLLTTTT
2.5.11. Aktion ............................................. 266
2.6. Report-Generator * .................................... 269
2.6.1. Vorbemerkung ........................................ 269
2.6.2. Arbeitsschritte ..................................... 269
2.6.3. Typ ,La"nge ,Offset .................................. 270
2.6.4. Aufbau der Listendefinition ......................... 273
2.6.5. Vorschub und Positionierkommandos ................... 276
2.6.6. Ausgabe konstanter Zeichenketten .................... 277
2.6.7. Eingabe von Zeichenketten u"ber Terminal ............. 278
2.6.8. Bereitstellung der Tupelwerte ....................... 279
2.6.9. Systemvariable ...................................... 288
2.6.10. Systemkonstante, Datum, Uhrzeit .................... 289
2.6.11. Ausgabe von numerischen Werten ..................... 290
2.6.11.1. Ausgabe als Integer-Zahl ......................... 290
2.6.11.2. Ausgabe als Real-Zahl ............................ 292
2.6.11.3. Pseudographische Ausgabe ......................... 293
2.6.12. Ausgabe von Zeichenkettenwerten .................... 294
2.6.13. Ausgabe von Werten als Bina"r-, Oktal-
oder Hexadezimalzahl im Byte- oder Wortformat ......... 295
2.6.14. Wertzuweisungen zu Systemvariablen -
arithmetische Ausdru"cke ............................... 296
2.6.15. Boolesche Variablen und Ausdru"cke .................. 297
2.6.16. Steuerung der Programmabarbeitung .................. 299
2.6.16.2. Zyklus ........................................... 299
2.6.16.3. Fallauswahl ...................................... 300
2.6.16.4. Prozeduren ....................................... 301
2.6.16.5. Seitengestaltung ................................. 302
2.6.16.6. Gruppenwechselprogrammierung ..................... 305
2.6.17. Schlu"sselworte ..................................... 311
2.7. Eingabegenerator ZIP
- Vers. 2.1 * ......................................... 312
2.7.1. Einleitung .......................................... 312
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB
- 367 - IIIINNNNHHHHAAAALLLLTTTT
2.7.2. Realisierung ........................................ 313
3.1. Terminkontrolle ** .................................... 320
3.1.1. Vorbemerkung ........................................ 320
3.1.2. Relationen .......................................... 320
3.1.3. Steuerprogramm ...................................... 323
3.1.4. Kontroll-Menue ...................................... 326
3.2. Report-Generator * .................................... 338
3.2.1. Arbeitslisten ....................................... 338
3.2.2. Softwarekatalog ..................................... 341
ING_DB 6.3/3 Juni 22, 1989 IIIINNNNGGGG____DDDDBBBB

View File

@ -1,39 +0,0 @@
SHELL= /bin/sh
#
# FOLGENDE FUNKTION SIND INTERN
#
HOME= /z/dbs/cat
DISK= /dev/dbs
SRC1= 1doc.1 1doc.2 1doc.3 1doc.4 \
1doc.5 1doc.6 2doc.1 2doc.2 \
2doc.3 Makefile
SRC2= 2doc.4 2doc.5 2doc.6 3doc \
4sachwort 5inhalt Makefile
.save1: $(SRC1)
mount $(DISK) /wrk
cp $? $@ /wrk/cat1
> $@
umount $(DISK)
.save2: $(SRC2)
mount $(DISK) /wrk
cp $? $@ /wrk/cat2
> $@
umount $(DISK)
$(HOME)/.save1: $(SRC1)
cp $? $(HOME)
> $@
$(HOME)/.save2: $(SRC2)
cp $? $(HOME)
> $@
.PRECIOUS: .save1
.PRECIOUS: .save2
.PRECIOUS: $(HOME)/.save1
.PRECIOUS: $(HOME)/.save2

View File

@ -1 +0,0 @@
a 2>/dev/null | fgrep "$1"

View File

@ -1 +0,0 @@
d 2>/dev/null | fgrep "$1"

View File

@ -1,13 +0,0 @@
set -x
modifyr adr adr same
modifyr adr dis same
sysmod adr relation attribute
rm -f *.ii
ln adr\ \ \ \ \ \ \ \ \ ii adr.ii
ln attribute\ \ \ ii attribute.ii
ln dis\ \ \ \ \ \ \ \ \ ii dis.ii
ln indexes\ \ \ \ \ ii indexes.ii
ln integrities\ ii integrities.ii
ln protect\ \ \ \ \ ii protect.ii
ln relation\ \ \ \ ii relation.ii
ln tree\ \ \ \ \ \ \ \ ii tree.ii

View File

@ -1,56 +0,0 @@
HOME= /z/dbs/data/base/adr
SHELL= /bin/sh
DISK= dbs
RM= rm -f
AMX= amx -O -s -i -o $@ $@.x
SRC= admin adr.ii attribute.ii indexes.ii \
integrities.ii protect.ii relation.ii tree.ii \
dis.ii Makefile a.x adr.x \
d.x dis.x kurz.x name.x \
new.x
PGM= a adr d dis \
kurz name new
install: $(PGM)
a: a.x
$(AMX)
adr: adr.x
$(AMX)
d: d.x
$(AMX)
dis: dis.x
$(AMX)
kurz: kurz.x
$(AMX)
brief: brief.x
$(AMX)
name: name.x
$(AMX)
new: new.x
$(AMX)
clean:
$(RM) $(PGM)
.save: $(SRC) $(PGM)
mount /dev/$(DISK) /wrk
cp $? $@ /wrk/adr
> .save
umount /dev/$(DISK)
$(HOME)/.save: $(SRC) $(PGM)
cp $? $(HOME)
> $(HOME)/.save
.PRECIOUS: .save
.PRECIOUS: $(HOME)/.save

View File

@ -1,61 +0,0 @@
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+
| | |
| ZKI der AdW | ZKI der AdW |
| Abt. RS | Abt. RS |
| Koll. Wenzlaff | Koll. Wenzlaff |
| Kurstr. 33 | Kurstr. 33 |
| BERLIN | BERLIN |
| ------------------------ | ------------------------ |
| 1 0 8 6 DDR | 1 0 8 6 DDR |
| | |
+-------------------------------+-------------------------------+

View File

@ -1,2 +0,0 @@
a 2>/dev/null | fgrep $1
d 2>/dev/null | fgrep $1

View File

@ -1,26 +0,0 @@
## shared adr
## char NAME[51];
## char TITEL[51];
## char KURZ[51];
amx()
{
register char *p;
## open adr
fprintf(stderr, "DRUCK adr\n\n");
## retrieve adr
## (
## NAME = $name,
## TITEL = $titel,
## KURZ = $kurz
## )
## {
printf("%-50s", KURZ);
if (*TITEL != ' ')
printf(" %s %s\n", TITEL, NAME);
## }
## close adr
}

View File

@ -1,68 +0,0 @@
## shared adr
## char NAME[51];
## char TITEL[51];
## char KURZ[51];
## char LANG[51];
## char ABT[51];
## char STR[51];
## char ORT[51];
## char PLZ[51];
amx()
{
## open adr
fprintf(stderr, "ADRESSEINGABE\n\n");
while (enter("\nNAME", NAME))
{
if (enter("TITEL", TITEL) == 0)
continue;
if (enter("KURZ", KURZ) == 0)
continue;
*LANG = 0;
enter("LANG", LANG);
if (enter("ABT", ABT) == 0)
continue;
if (enter("STR", STR) == 0)
continue;
if (enter("ORT", ORT) == 0)
continue;
if (enter("PLZ", PLZ) == 0)
continue;
## use (+adr)
## append adr
## (
## $name = NAME,
## $titel = TITEL,
## $kurz = KURZ,
## $lang = LANG,
## $abt = ABT,
## $str = STR,
## $ort = ORT,
## $plz = PLZ
## )
## commit
}
## close adr
}
enter(msg, buf)
register char *msg;
register char *buf;
{
register char *p;
register int c;
fprintf(stderr, "%s:\t", msg);
p = buf;
while ((c = getchar()) >= 0)
{
if (c == '\n')
break;
*p++ = c;
}
*p = 0;
return (p - buf);
}

View File

@ -1,107 +0,0 @@
## shared adr
## char NAME[51];
## char VERTRAG[8];
## char TITEL[51];
## char KURZ[51];
## char LANG[51];
## char ABT[51];
## char STR[51];
## char ORT[51];
## char PLZ[51];
amx()
{
register char *p;
char outbuf[BUFSIZ];
setbuf(stdout, outbuf);
fprintf(stderr, "\t|---------------------------------------\n");
## open adr
## open dis
## retrieve dis
## (VERTRAG = $vertrag)
## {
## retrieve adr $name = $name and $kurz = $kurz
## (
## NAME = $name,
## TITEL = $titel,
## KURZ = $kurz,
## LANG = $lang,
## ABT = $abt,
## STR = $str,
## ORT = $ort,
## PLZ = $plz
## )
## {
pr_sadr();
AAcat("q1");
pr_adr("");
printf("\t\t\t\t\t\t20. Juni 1989\n");
printf("\n\n\n");
printf("Betreff: Vertrag %s zu ING_DB 6.3\n", VERTRAG);
printf("-------- Auslieferung Release 4\n");
printf("\n\n\n");
printf("Werte(r) %s %s\n\n", TITEL, NAME);
AAcat("q2");
pr_adr(" | ");
AAcat("q3");
putchar('\f');
## }
## }
## close dis
## close adr
fflush(outbuf);
}
pr_adr(msg)
register char *msg;
{
printf("%s%s\n", msg, KURZ);
if (*LANG)
printf("%s%s\n", msg, LANG);
if (*ABT)
printf("%s%s\n", msg, ABT);
if (*TITEL)
printf("%s%s %s\n", msg, TITEL, NAME);
printf("%s%s\n", msg, STR);
printf("%s%s\n", msg, ORT);
printf("%s%s\n", msg, PLZ);
}
pr_sadr()
{
fprintf(stderr, "\t|\n");
fprintf(stderr, "\t| %s%s\n", KURZ);
if (*LANG)
fprintf(stderr, "\t| %s\n", LANG);
if (*ABT)
fprintf(stderr, "\t| %s\n", ABT);
if (*TITEL)
fprintf(stderr, "\t| %s %s\n", TITEL, NAME);
fprintf(stderr, "\t| %s\n", STR);
fprintf(stderr, "\t| %s\n", ORT);
fprintf(stderr, "\t| %s\n", PLZ);
fprintf(stderr, "\t|\n");
fprintf(stderr, "\t|---------------------------------------\n");
}
AAcat(file)
register char *file;
{
register int i;
register FILE *fd;
char buf[BUFSIZ];
extern FILE *fopen();
fd = fopen(file, "r");
setbuf(fd, buf);
while ((i = getc(fd)) > 0)
putchar(i);
fclose(fd);
}

View File

@ -1,39 +0,0 @@
## shared adr
## char KURZ[51];
## short STD;
## short TAG;
## short MON;
## short JAHR;
## char DBS[2];
## char PQR[2];
## char AMX[2];
amx()
{
## open dis
fprintf(stderr, "DRUCK dis\n\n");
## retrieve dis
## (
## KURZ = $kurz,
## STD = $std,
## TAG = $tag,
## MON = $mon,
## JAHR = $jahr,
## DBS = $dbs,
## PQR = $pqr,
## AMX = $amx
## )
## {
printf("%-50s: %2d.%2d.%4d %2d Uhr", KURZ, TAG, MON, JAHR, STD);
if (*DBS == 'y')
printf(" I");
if (*PQR == 'y')
printf(" P");
if (*AMX == 'y')
printf(" A");
putchar('\n');
## }
## close dis
}

View File

@ -1,120 +0,0 @@
## shared adr
## char KURZ[51];
## char PC[51];
## short STD;
## short TAG;
## short MON;
## short JAHR;
## char DBS[2];
## char PQR[2];
## char AMX[2];
amx()
{
register int cnt;
## open dis
fprintf(stderr, "DISTRIBUTION\n\n");
while (enter("\n Institution", KURZ))
{
cnt = 0;
## retrieve dis $kurz = KURZ
## (
## STD = $std,
## TAG = $tag,
## MON = $mon,
## JAHR = $jahr,
## DBS = $dbs,
## PQR = $pqr,
## AMX = $amx
## )
## {
cnt++;
tuple("EXIST");
## }
if (cnt)
continue;
if (enter(" Computer-Typ", PC) == 0)
continue;
if (i_enter(" Tag", &TAG) == 0)
continue;
if (i_enter(" Monat", &MON) == 0)
continue;
if (i_enter(" Jahr", &JAHR) == 0)
continue;
if (i_enter(" Stunde", &STD) == 0)
continue;
if (enter("ING_DB System [y/n]", DBS) == 0)
continue;
if (enter(" PQR System [y/n]", PQR) == 0)
continue;
if (enter(" AMX System [y/n]", AMX) == 0)
continue;
## use (+dis)
## append dis
## (
## $kurz = KURZ,
## $pc = PC,
## $std = STD,
## $tag = TAG,
## $mon = MON,
## $jahr = JAHR,
## $dbs = DBS,
## $pqr = PQR,
## $amx = AMX
## )
## commit
}
## close dis
}
enter(msg, buf)
register char *msg;
register char *buf;
{
register char *p;
register int c;
fprintf(stderr, "%s:\t", msg);
p = buf;
while ((c = getchar()) >= 0)
{
if (c == '\n')
break;
*p++ = c;
}
*p = 0;
return (p - buf);
}
i_enter(msg, num)
register char *msg;
register int *num;
{
char buf[51];
if (enter(msg, buf))
{
*num = atoi(buf);
return (1);
}
return (0);
}
tuple(msg)
register char *msg;
{
printf("\n%s: %2d.%2d.%4d %2d Uhr", msg, TAG, MON, JAHR, STD);
if (*DBS == 'y')
printf(" ING_DB");
if (*PQR == 'y')
printf(" PQR");
if (*AMX == 'y')
printf(" AMX");
printf("\n\n");
}

View File

@ -1,67 +0,0 @@
## shared adr
## char NAME[51];
## char TITEL[51];
## char KURZ[51];
## char LANG[51];
## char ABT[51];
## char STR[51];
## char ORT[51];
## char PLZ[51];
amx()
{
register char *p;
## open adr
fprintf(stderr, "ADRESSENDRUCK\n\n");
while (enter("\nKURZ", KURZ))
{
## retrieve adr $kurz = KURZ
## (
## NAME = $name,
## TITEL = $titel,
## KURZ = $kurz,
## LANG = $lang,
## ABT = $abt,
## STR = $str,
## ORT = $ort,
## PLZ = $plz
## )
## {
printf("\n\n\n\t%s\n", KURZ);
if (*LANG != ' ')
printf("\t%s\n", LANG);
if (*ABT != ' ')
printf("\t%s\n", ABT);
if (*TITEL != ' ')
printf("\t%s %s\n", TITEL, NAME);
printf("\t%s\n", STR);
printf("\t%s\n", ORT);
printf("\t------------------------\n");
printf("\t%s\n", PLZ);
## }
}
## close adr
}
enter(msg, buf)
register char *msg;
register char *buf;
{
register char *p;
register int c;
fprintf(stderr, "%s:\t", msg);
p = buf;
while ((c = getchar()) >= 0)
{
if (c == '\n')
break;
*p++ = c;
}
*p = 0;
return (p - buf);
}

View File

@ -1,70 +0,0 @@
## shared adr
## char NAME[51];
## char TITEL[51];
## char KURZ[51];
## char LANG[51];
## char ABT[51];
## char STR[51];
## char ORT[51];
## char PLZ[51];
amx()
{
register char *p;
## open adr
fprintf(stderr, "ADRESSENDRUCK\n\n");
while (enter("\nNAME", NAME))
{
## retrieve adr $name = NAME
## (
## NAME = $name,
## TITEL = $titel,
## KURZ = $kurz,
## LANG = $lang,
## ABT = $abt,
## STR = $str,
## ORT = $ort,
## PLZ = $plz
## )
## {
printf("\t| \n\t|------------------------------------------\n");
printf("\t| \n\t| %s\n", KURZ);
if (*LANG != ' ')
printf("\t| %s\n", LANG);
if (*ABT != ' ')
printf("\t| %s\n", ABT);
if (*TITEL != ' ')
printf("\t| %s %s\n", TITEL, NAME);
printf("\t| %s\n", STR);
printf("\t| %s\n", ORT);
printf("\t| ------------------------\n");
printf("\t| %s\n", PLZ);
## }
}
printf("\t| \n\t|------------------------------------------\n");
## close adr
}
enter(msg, buf)
register char *msg;
register char *buf;
{
register char *p;
register int c;
fprintf(stderr, "%s:\t", msg);
p = buf;
while ((c = getchar()) >= 0)
{
if (c == '\n')
break;
*p++ = c;
}
*p = 0;
return (p - buf);
}

View File

@ -1,113 +0,0 @@
## shared adr
## char KURZ[51];
## short STD;
## short TAG;
## short MON;
## short JAHR;
## char DBS[2];
## char PQR[2];
## char AMX[2];
amx()
{
int num;
char buf[51];
## open dis
fprintf(stderr, "UPDATE DISTRIBUTION\n\n");
while (enter("\n Institution", KURZ))
{
## use (+dis)
## retrieve dis $kurz = KURZ
## (
## STD = $std,
## TAG = $tag,
## MON = $mon,
## JAHR = $jahr,
## DBS = $dbs,
## PQR = $pqr,
## AMX = $amx
## )
## {
tuple("OLD");
if (i_enter(" Tag", &num))
TAG = num;
if (i_enter(" Monat", &num))
MON = num;
if (i_enter(" Jahr", &num))
JAHR = num;
if (i_enter(" Stunde", &num))
STD = num;
if (enter("ING_DB System [y/n]", buf))
AAsmove(buf, DBS);
if (enter(" PQR System [y/n]", buf))
AAsmove(buf, PQR);
if (enter(" AMX System [y/n]", buf))
AAsmove(buf, AMX);
## replace
## (
## $std = STD,
## $tag = TAG,
## $mon = MON,
## $jahr = JAHR,
## $dbs = DBS,
## $pqr = PQR,
## $amx = AMX
## )
tuple("NEW");
## }
## commit
}
## close dis
}
enter(msg, buf)
register char *msg;
register char *buf;
{
register char *p;
register int c;
fprintf(stderr, "%s:\t", msg);
p = buf;
while ((c = getchar()) >= 0)
{
if (c == '\n')
break;
*p++ = c;
}
*p = 0;
return (p - buf);
}
i_enter(msg, num)
register char *msg;
register int *num;
{
char buf[51];
if (enter(msg, buf))
{
*num = atoi(buf);
return (1);
}
return (0);
}
tuple(msg)
register char *msg;
{
printf("\n%s: %2d.%2d.%4d %2d Uhr", msg, TAG, MON, JAHR, STD);
if (*DBS == 'y')
printf(" ING_DB");
if (*PQR == 'y')
printf(" PQR");
if (*AMX == 'y')
printf(" AMX");
printf("\n\n");
}

View File

@ -1,23 +0,0 @@
\r
{remove;{continuetrap}}\v
range a = adr
range d = dis\g
\k start
{readdefine;betrieb;BETRIEB> }\v
retrieve (d.kurz)
where d.kurz = "betrieb"\g
\b?{tuplecount}!=1 start
retrieve (d.vertrag, d.name)
where d.kurz = "betrieb"\g
retrieve (a.name)
where a.kurz="betrieb"\g
{readdefine;verant;\ \ \ NAME> }\v
{readdefine;vno;VERTRAG> }\v
replace d (name = a.name, vertrag="vno")
where a.name = "verant" and a.kurz=d.kurz and d.kurz="betrieb"\g
retrieve (d.vertrag, d.name)
where d.kurz = "betrieb"\g
\r
\b start
\k ende
\r

View File

@ -1,2 +0,0 @@
{readdefine;nnnn;nnnn}
help\g

Some files were not shown because too many files have changed in this diff Show More