-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathUSERGUID.HTM
executable file
·31622 lines (18461 loc) · 775 KB
/
USERGUID.HTM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
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
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!--This file created 8/31/97 10:00 AM by Claris Home Page version 2.0-->
<HTML>
<HEAD>
<TITLE> Data Base Editor [DBE] Level 9R1 Users Guide </TITLE>
<META NAME=GENERATOR CONTENT="Claris Home Page 2.0">
<X-SAS-WINDOW TOP=192 BOTTOM=798 LEFT=128 RIGHT=658>
<!DOCTYPE PUBLIC HTML "-//IETF//DTD HTML 2.0//EN" >
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<P> </P>
<P>This users guide corresponds to level 9R1 of DBE. Features
described in this document, while being implemented as described
herein, are subject to change or deletion at any time.</P>
<P>This manual provides instruction and reference to users wishing to
learn about the database editor or use its "canned" functions. Those
users interested in exercising the "progammability" of the database
editor should consult the "Database Editor Programmers Reference
Manual".</P>
<P>Consult Appendix B for a complete summary of all DBE changes made
to date.</P>
<P>Please note that DBE is not an official software product of UNISYS
Corporation and therefore falls into none of the standard software
support categories.</P>
<P>Problem reports may be submitted to:</P>
<P>Laura McQuade Ron Lammardo Unisys Corporation NYS Dept. of Social
Services 255 Washington Avenue Extension 40 N. Pearl St. Albany, NY
12205 Albany, NY 12243</P>
<P>Such reported problems will be handled on an "as time allows"
basis.</P>
<P>This document is intended to provide the reader with all
information necessary to operate the DBE processor.</P>
<P>There is an additional DBE document available - the 'Database
Editor Technical Guide', providing a technical overview of the
construction, generation and maintenance of the processor itself.
This document will likely be of interest only to the technician whose
job it is to maintain DBE.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | Functions of the | </B></CENTER></P>
<P><CENTER><B>| INTRODUCTION | Database Editor | </B></CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<H1>1. An Introduction to the Database Editor</H1>
<H2>1.1. Functions of the Database Editor</H2>
<P>This chapter is intended to serve as an introduction to the
database editor [DBE] utility. DBE provides a powerful interactive
facility for use by the DMS/1100 support technician and database
administrator.</P>
<P> </P>
<P>By supplying DBE with an absolute schema, the DBE user may
'browse' through a DMS/1100 database using commands similar to the
1100 series text editor (@ED); the various tables and data structures
within an absolute schema or subschema may be examined using the same
commands that allow the inspection of database pages. A series of
generalized I/O commands allow external files such as audit-trail
tapes and quick-look files to be accessed interactively.</P>
<P> </P>
<P>The greatest power of the database editor lies in its ability to
be easily programmed, allowing libraries of user programs (called
macros) to be developed for specific or general applications. Using
these macros, DBE may scan an entire database in search of some
pre-programmed, pre-defined condition (perhaps an abnormality to be
located). DBE may also be used to quickly produce reports on database
growth, page utilization and even DARP overflow chaining and usage.
DBE macros can be used as well to view an audit-trail tape (block by
block) to gather ATT statistics or to perform tape verification.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | A Short History of DBE | </B>
</CENTER></P>
<P><CENTER><B>| INTRODUCTION | | </B></CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<H2>1.2. A Short History of DBE</H2>
<P>DBE was developed in response to the following collection of needs
as identified by database administrators and database system-support
personnel:</P>
<P> </P>
<P>1. There was no way to examine the contents of a DMS/1100 page
without using either the DUMP or PRINT commands of the DMU. While
these DMU features would allow pages to be inspected, they were far
from conversational in nature. Although other more conversational
file utilities were available, typically they were not specific
enough to be of significant value for use in a DMS/1100 environment.
</P>
<P> </P>
<P>2. Examination of absolute schema elements was possible only using
DMR dumps or the @LIST processor.</P>
<P> </P>
<P>3. No utility existed for automated examination of the physical
structures of a database. Of greatest concern was the ability to
obtain record-occurrence counts by area, monitor the growth of DARP
areas (in an attempt to reduce the number of IO22 conditions on DARP
areas) and to monitor the overflow page chaining of areas (to detect
any data 'clumping', thus indicating that an area reorganization was
needed). While QLP could count record occurrences, counts by area
would be difficult to obtain. While the DMU could generate some
statistics, time-consuming database verifications or compactions were
necessary in order to generate them.</P>
<P> </P>
<P>4. The available tape utility programs either were too awkward to
use interactively or were not specific enough to be used with audit
trail tapes.</P>
<P> </P>
<P>5. The need existed to perform ad hoc scans of areas to locate
suspected abnormalities so that they might be corrected. These flaws
in the physical structure of the database (broken pointers, corrupted
page headers, etc.) were generally of a nature as to make the
affected pages unavailable to QLP or the DMU (or even the DMR
itself). The DMU was also limited in the set of structures it could
access.</P>
<P> </P>
<P>The database editor was developed to address each of these
concerns. In the actual implementation of DBE, a number of design
decisions were made that profoundly influenced the character of the
final 'product':</P>
<P> </P>
<P>1. Whenever possible, commands were made interactive in nature;
there are very few DBE facilities that can be done only from within a
macro and not from the keyboard of the users terminal.</P>
<P> </P>
<P>2. The command set provided is very powerful. Commands such as the
COUNT command allow record occurrence counts to be generated for an
area. A SORT statement exists as does a HISTOGRAM statement (to
automatically generate histograms for statistical reporting).</P>
<P> </P>
<P>3. The command syntax was patterned after several commonly-used
utility programs; among the utilities contributing to the syntax of
DBE commands are @ED, @FANG and @FLIT as well as elements of the
programming languages BASIC, COBOL and FORTRAN.</P>
<P> </P>
<P>4. DBE bypasses the DMR. This decision was made for two basic
reasons. First, due to the nature of the problems DBE was designed to
solve, it would need to deal with databases that might adversely
impact the DMR - not advisable in a multi-thread environment. Second,
even though it would have been possible to make DBE a single-thread
application for the DMR, it would have been necessary to introduce
local code to that DMR in order to accommodate the required DBE
accesses. Since much of the DBE activity was intended to be read-only
in nature and is performed at times when the DMR is inactive (during
a database save or after a DMR failure due to a corrupted database),
no serious inconsistencies were anticipated. As a side-effect of this
decision not to use the DMR as the database I/O mechanism, DBE can
perform many functions at a rate significantly faster than the DMR
(with its necessarily generalized code) would be capable of
providing.</P>
<P> </P>
<P>5. DBE was designed to operate as a batch/demand application.
While it does allow batch-connect access to TIP schemas and areas, it
is not itself available as a TIP transaction program.</P>
<P> </P>
<P>6. DBE was not intended for use by application programmers,
although those familiar with DMS structures might find it useful. DBE
was also not intended to interface with DMS/1100 run-units.</P>
<P> </P>
<P>Originally developed for use in conjunction with DMS/1100 level
7R1, DBE has been enhanced for use with DMS/1100 schemas and
subschemas through level 12R4. Since the internal structure of a
database has remained consistent across DMS levels, any database
should be accessible to DBE provided that a level 7R1 or greater
schema absolute can be provided.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | Examining Schemas and Pages | </B>
</CENTER></P>
<P><CENTER><B>| INTRODUCTION | | </B></CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<H2>1.3. Using DBE to Examine Schemas and Pages</H2>
<P>The database editor, as previously mentioned, may be used to
'browse' through schema/subschema elements or database pages. This is
accomplished by referring to the appropriate DBE-defined 'tables'
using the editor-like printing commands. The tables defined by DBE
are shown in Figure 1-1.</P>
<P> </P>
<P>The DBE Programmer's Reference Manual shows a complete listing of
each table.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | Examining Schemas and Pages | </B>
</CENTER></P>
<P><CENTER><B>| INTRODUCTION | Figure 1-1: DBE Tables | </B>
</CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P> </P>
<P> </P>
<P> </P>
<P>Schema Tables</P>
<P>-------------</P>
<P> </P>
<P>SCHEMA The complete schema. Certain parts of this table have their
own table names. Note that if DBE has been generated at your site
with FULL SCHEMA READS disabled (consult the DBE Technical Guide or
SCHEMA command documentation in this manual) this table will not
exist.</P>
<P> </P>
<P>DBPDT Database Procedure Description Table.</P>
<P> </P>
<P>FDT Schema File Description Table.</P>
<P> </P>
<P>GED Schema Global Encode/Decode Table.</P>
<P> </P>
<P>SCRT Schema Reference Table.</P>
<P> </P>
<P>PFSSCH Schema Program File Element Information.</P>
<P> </P>
<P> </P>
<P> </P>
<P>Schema Area, Feature, Record, & Set Tables</P>
<P>------------------------------------------</P>
<P> </P>
<P>ART Schema Area Reference Table.</P>
<P> </P>
<P>FRT Feature Reference Table.</P>
<P> </P>
<P>IDT Item Description Table</P>
<P> </P>
<P>RDT Schema Record Description Table.</P>
<P> </P>
<P>RFT Record Feature Table</P>
<P> </P>
<P>RRT Schema Record Reference Table</P>
<P> </P>
<P>SDT Schema Set Description Table.</P>
<P> </P>
<P>SRT Schema Set Reference Table.</P>
<P> </P>
<P> </P>
<P>Subschema Tables</P>
<P>----------------</P>
<P>SUBSCH A complete subschema. Certain parts of this table have
their own names. Note that if DBE has been generated at your site
with FULL SCHEMA READS disabled (consult the DBE Technical Guide or
SUBSCHEMA command documentation in this manual) this table will not
exist.</P>
<P>DDT Data Name Description Table</P>
<P>DNT Data Name Table.</P>
<P> </P>
<P>INI Item Name Index.</P>
<P> </P>
<P>PFSSUB Subschema Program File Element Information.</P>
<P> </P>
<P>SFD Subschema File Description Table.</P>
<P> </P>
<P>SSCD Subschema Description Table.</P>
<P> </P>
<P>SST Subschema Reference Table.</P>
<P> </P>
<P> </P>
<P> </P>
<P>Subschema Area, Record, & Set Tables</P>
<P>------------------------------------</P>
<P> </P>
<P>SART Schema Area Reference Table.</P>
<P> </P>
<P>SRDT Schema Record Description Table.</P>
<P> </P>
<P>SRRT Schema Record Reference Table</P>
<P> </P>
<P>SSDT Schema Set Description Table.</P>
<P> </P>
<P>SSRT Schema Set Reference Table.</P>
<P> </P>
<P> </P>
<P> </P>
<P>Subschema Tables: QLP only</P>
<P>--------------------------</P>
<P> </P>
<P>ACT Area Control Table. One per subschema area.</P>
<P> </P>
<P>DCT DB Data Name Code Table. One per subschema.</P>
<P> </P>
<P>DNS Data Name Storage Area. One per subschema.</P>
<P> </P>
<P>DSW D$WORK/S$WORK Table. One per subschema.</P>
<P> </P>
<P>ICT Item Code Table. One per subschema record.</P>
<P> </P>
<P>INT Item Name Table. One per subschema record.</P>
<P> </P>
<P>NHT Name Hash Table. One per subschema.</P>
<P> </P>
<P>PDT Path Description Table. One per path.</P>
<P> </P>
<P>PIT Path Index Table. One per subschema. When a subschema is
invoked, the PIT table consists of 1 word, the PIT header. When a
path is selected, the PIT table becomes the entry for the path
chosen.</P>
<P> </P>
<P>RCDT Record Code Table. One per subschema.</P>
<P> </P>
<P>RIT Record Information Table. One per subschema record.</P>
<P> </P>
<P>SCT Set Code Table. One per subschema.</P>
<P> </P>
<P>SHT Subschema Header Table. One per subschema.</P>
<P> </P>
<P>SIT Set Information Table. One per subschema set.</P>
<P> </P>
<P>RDMS Tables</P>
<P>-----------</P>
<P> </P>
<P>RP1 RDMS Page 1 (Contains RFCP and RAPs).</P>
<P> </P>
<P>RFCP RDMS File Control Page.</P>
<P> </P>
<P>RAP RDMS Allocation Page.</P>
<P> </P>
<P> </P>
<P> </P>
<P>Miscellaneous Tables</P>
<P>--------------------</P>
<P> </P>
<P>ATTBUF Audit Trail Buffer.</P>
<P> </P>
<P>ATTCTL Audit Trail Control table used to identify contents and
position within ATTBUF.</P>
<P> </P>
<P>CLCBND Calc page boundaries (used by the Randential function).
</P>
<P> </P>
<P>CMDBUF Latent Command Buffer used by Macros to cause a command to
be executed on return to conversational mode.</P>
<P> </P>
<P>CSLOT The calc chains from the current page. The first CSLOT entry
will be the page header calc chain. All remaining entries will be the
calc chains from the bottom of the page.</P>
<P> </P>
<P>DCSIDX The DCS index for the current UDS application</P>
<P> </P>
<P>ERSTS Bit defined error status flags</P>
<P> </P>
<P>IOBUF A general-purpose buffer for performing tape and
non-database disc I/O.</P>
<P> </P>
<P>KEYBUF Buffer used to pass information on the currently running
macro to the KEYIN$ handler.</P>
<P> </P>
<P>P0 The page header and DAE information for page zero of a DARP
area.</P>
<P> </P>
<P>PAGE A complete database page.</P>
<P>or PG</P>
<P> </P>
<P>PH The page header portion of a database page.</P>
<P> </P>
<P>RPAGE A complete RDMS database page.</P>
<P> </P>
<P>RPH The page header portion of an RDMS database page.</P>
<P> </P>
<P>RRSLOT The record slots from the bottom of the current RDMS page.
</P>
<P> </P>
<P>RSLOT The record slots from the bottom of the current page.</P>
<P> </P>
<P>RTREG Table of TIP registration information for a TIP RDMS area
(this is the table returned by the FCSS LF function.</P>
<P> </P>
<P>TREG Table of TIP Registration Information for a TIP area (this is
the table returned by the FCSS LF function.</P>
<P> </P>
<P>UDSVAR Table containing all UDS system variables</P>
<P> </P>
<P>USRBUF Table for use by user macros</P>
<P> </P>
<P>WBUF The buffer used by the "WRITE" command.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | Examining Schemas and Pages | </B>
</CENTER></P>
<P><CENTER><B>| INTRODUCTION | Figure 1-2: "Browsing" Cmds | </B>
</CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P> </P>
<P> </P>
<P>Figure 1-2 shows a sample of how these tables may be used to
'browse' through a schema and database. Those entries labeled with a
number at the left illustrate user inputs.</P>
<P>1: @DMS*UTIL.DBE</P>
<P>2: *:SCHEMA DMS10R1*ABS-FMGDEV.FMGDEV-SCH</P>
<P>*:PRINT! FDT</P>
<P>FDT[0] 000000000000 132214111233 413010150505 061061122062</P>
<P>[4] 606562647160 004444001150 000000000001 000000000000</P>
<P>[010] 000000000000 000000000000 000000000140 040040040040</P>
<P>[014] 040040040040 040040040040</P>
<P>EOF:13</P>
<P>3: FDT[0]:P!,F</P>
<P>FDT[0] '@@@@@@FMGDEV-SCH
AC1EK2052490@==@D*@@@@@[@@@@@@@@@@@@@@@@@@'</P>
<P>[012] '@@@@[)^@)^@)^@)^@)^@)^@)'</P>
<P>EOF:13</P>
<P>4: FDT[0]:PRINT 0,20 SCRT</P>
<P>SCRT[0] 000000000000 010000000000 000000004444 000000000000</P>
<P>[4] 000000000000 000000000000 000000000000 000000000000</P>
<P>[010] 000007000016 000024000362 000013000751 000001000356</P>
<P>[014] 143000000000 000000000000 000000004445 400103000000</P>
<P>[020] 000000000000 000000141410 212414161006 214106271206</P>
<P>[024] 050505050505</P>
<P>5: SCRT[024]:+5</P>
<P>SCRT[031] 000000000000</P>
<P>6: SCRT[031]:-7</P>
<P>SCRT[022] 212414161006</P>
<P>7: SCRT[022]:PRINT,F</P>
<P>SCRT[022] 'LOGICA'</P>
<P>8: SCRT[022]:P,F 0,20</P>
<P>SCRT[0]
'@@@@@@[@@@@@@@@@==@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@I@@O@#2'</P>
<P>[012] '@@F@B(@@[@#,GS@@@@@@@@@@@@@@=>)[#@@@@@@@@@@@@'</P>
<P>[024] ' '</P>
<P>9: SCRT[024]:PRINT,D 0,20</P>
<P>SCRT[0] 0 1073741824 2340 0</P>
<P>[4] 0 0 0 0</P>
<P>[010] 1835022 5243122 2884073 262382</P>
<P>[014] 13287555072 0 2341 -34342174719</P>
<P>[020] 0 49928 18592358918 18808926854</P>
<P>[024] 5453926725</P>
<P>10:SCRT[024]:AREA LOGICAL-AREA</P>
<P>AREA FILE: TIP/DMS FILE: 2341</P>
<P>11:SCRT[024]:PAGE 2</P>
<P>SCRT[024]:P! PH</P>
<P>PH[0] 156772014730 444510000002 003400000161 000067003126</P>
<P>[4] 111307616060 437522505562 000002000111 444500020010</P>
<P>[010] 000000000000 000000000000</P>
<P>EOF:9</P>
<P>12:PH[0]:P 012,040 PAGE</P>
<P>PAGE[012] 001750000071 444500020026 444500020065 444500020045</P>
<P>[016] 444500020050 444502550003 444505620003 444500020005</P>
<P>[022] 127115123055 115105104111 116104070040 060070062071</P>
<P>[026] 060070061067 071062060060 060060061067 060060060060</P>
<P>[032] 063062060060 062060064067 060063061061 060061116131</P>
<P>[036] 123115117104 055123103110 040040127115</P>
<P>13:PAGE[040]:P,F 012,040</P>
<P>PAGE[012] '@>@]@Q=>@]@5=>@]@>=>@]@*=>]!@#=>
2@#=>@]@ E9HES!D( C-D'</P>
<P>[024]
'D1^B@)A@8AK9A@8AC7BC2A@0A@0AC7A@0A@0AS2A@0AK0A)7A@3AC1A@1D1T'</P>
<P>[036] 'ETHD9^ (NCTC^@)E9H'</P>
<P>14:PAGE[040]:P,A 012,040</P>
<P>PAGE[012] '?H?9$@??$@?5$@?%$@?($BH?$E??$@??WMS-MEDIND8
0829081792000017'</P>
<P>[031] '000032002047031101NYSMOD-SCH WM'</P>
<P> </P>
<P>Explanation:</P>
<P> </P>
<P>1. The DBE processor is called. In this example, it is kept in the
file 'DMS*UTIL'.</P>
<P> </P>
<P>2. The SCHEMA command is used to load the absolute schema element
(in this case for an EXEC schema) to be used by DBE. The next
command, similar to the P! command in @ED, requests a listing of the
entire Schema File Description Table. The default format of this
listing will be in octal.</P>
<P> </P>
<P>3. Like @ED, DBE allows the PRINT command to be abbreviated simply
to P. A Fieldata listing is now requested. Failure to specify a table
name (as is the case here) will cause the most-recently accessed
table to be used (note the table name now present in the DBE prompt
to the user).</P>
<P> </P>
<P>4. Print words 0 through 20 (inclusive) of the Schema Reference
Table using the default format (octal). Note that the first word of
any table is word 0 (zero), not word one.</P>
<P> </P>
<P>5. Move forward 5 words in the current table from the present word
(note the word number within [] in the prompt DBE gives the user).
</P>
<P> </P>
<P>6. Move backward seven words in the current table.</P>
<P> </P>
<P>7. Print the current word in Fieldata.</P>
<P> </P>
<P>8. Print words 0 through 20 (inclusive) of the current table
(SCRT) in Fieldata.</P>
<P> </P>
<P>9. Print words 0 through 20 (inclusive) of the current table
(SCRT) in decimal.</P>
<P> </P>
<P>10. Allow DBE to access the given area: areas may be accessed by
name (as was the case here), by area code or by position (relative or
absolute) within the Schema Reference Table. The AREA command must be
executed prior to attempting to reference database pages from that
area. Only one area may be in use at any time.</P>
<P> </P>
<P>11. Fetch page two from the current area and print the entire page
header in octal. Only a single page may be in use at any time.</P>
<P> </P>
<P>12. Print words 10 through 32 (inclusive) of the current page.
Note that the word numbers on a PRINT request may be specified in
octal (as was done here by supplying a leading zero) or in decimal
(as in previous examples).</P>
<P> </P>
<P>13. Print words 10 through 32 (inclusive) of the current page in
Fieldata. No table was specified, so the most recent table (PAGE) is
used.</P>
<P> </P>
<P>14. Print words 10 through 32 (inclusive) of the current page in
Ascii.</P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<P><CENTER><B>| Chapter 1 | An Introduction to Macros | </B>
</CENTER></P>
<P><CENTER><B>| INTRODUCTION | | </B></CENTER></P>
<P><CENTER><B>:-------------------------------:--------------------------------:
</B></CENTER></P>
<H2>1.4. Introduction to Macros</H2>
<P>Many of the commands and features of the database editor relate to
its ability to be programmed for a variety of functions. These
programs, called macros, fall into two categories - SYSTEM MACROS,
which are supplied with DBE and USER MACROS, written by DBE users to
meet their specific needs. There is no difference between these two
types of macros other than their locations - system macros are stored
as symbolic SDF elements on a file specified when the DBE processor
was generated while user macros are stored as symbolic SDF elements
on any other file(s) of the user's choosing. DBE will search the
files 'DBE$PF' and 'DBE$PF2' for user macros, so the user must attach
that name to the appropriate file using @USE or @@USE. The use name
for DBE$PF will be attached automatically by DBE by supplying the
desired filename in the first parameter subfield (spec1) of the DBE
processor call. Additionally, system macros (the LIBRARY, LIB, and
ALT-LIB macros) enable the user to switch user macro files at will
within DBE.</P>
<P> </P>
<P>The library of system macros includes the following:</P>
<P> </P>
<P>1. Macros to assist in the 'browsing' operations described
previously. For most tables accessible by DBE (see Figure 1-1), a
macro exists to produce a formatted and annotated listing.</P>
<P> </P>
<P>2. Database access macros to locate and print records, follow set
and calc chains and even produce formatted dumps of entire database
pages.</P>
<P> </P>
<P>3. Database reporting macros to assist the database administrator
in the task of maintaining a database.</P>
<P> </P>
<P>4. Macros to perform audit-trail and quick-look file analysis.
</P>
<P> </P>
<P>5. General utility macros to enable the DBE user to converse with
the system operator, decode page header date/time stamps and perform
other miscellaneous functions.</P>
<P> </P>
<P>Any macro is invoked by entering its name followed by any
necessary parameters either as a command or to the right of an equals
sign (=) on a LET (arithmetic assignment) statement. Any macro may be
invoked in either fashion. Figure 1-3 illustrates some of the
table-printing macros. Note the similarity in form between macro
calls and actual DBE commands (only with practice can you tell them
apart). By developing macros the effective DBE command-set can easily
be extended to include new functionality.</P>
<P> </P>
<P> </P>
<P><CENTER>Figure 1-3</CENTER></P>
<P><CENTER>Table 'Browsing' Macros</CENTER></P>
<P>fxform 1 *:SCHEMA DMS10R1*ABS-FMGDEV.FMGDEV-SCH</P>
<P>*:AREAS</P>
<P>ALL AREAS FOR SCHEMA: FMGDEV-SCH</P>
<P> </P>
<P>2341: LOGICAL-AREA DARP TIP DATA</P>
<P>2342: LOGICAL-HIST DARP TIP DATA</P>
<P>2343: FILE-AREA DARP TIP DATA</P>
<P>2344: FILE-HIST DARP TIP DATA</P>
<P>2345: PEND-AREA DARP TIP DATA</P>
<P>2346: USAGE-AREA DARP TIP DATA</P>
<P>2347: EXTRA-AREA DARP TIP DATA</P>
<P>2 *:SCH,T 2340 FMGDEV-SCH</P>
<P>*:AREAS *FILE*</P>
<P>ALL AREAS WHOSE NAMES CONFORM TO MASK "*FILE*" FOR SCHEMA:
FMGDEV-SCH</P>
<P> </P>
<P>2343: FILE-AREA DARP TIP DATA</P>
<P>2344: FILE-HIST DARP TIP DATA end</P>
<P>fxform 3 *:RECORDS</P>
<P>ALL RECORDS FOR SCHEMA: FMGDEV-SCH</P>
<P> </P>
<P>LOCATION -SIZES (WDS)-- ---- SETS ----</P>
<P>CODE NAME MODE DATA PTRS TOT OWN AUTO MAN</P>
<P>---- ------------------------------ ----------- ---- ---- ----
---- ---- ----</P>
<P>5 DA-SCHEMA-RECORD CALC 16 3 20 1 0 0</P>
<P>10 DA-LOGICAL-RECORD CALC 12 5 18 1 1 0</P>
<P>15 DA-AREA-RECORD CALC W/DUPS 49 7 57 2 1 0</P>
<P>20 DA-OVERFLOW-HISTORY VIA SET 12 2 15 0 1 0</P>
<P>25 DA-REC-COUNT VIA SET 28 2 31 0 1 0</P>
<P>40 DA-DISK-PACK-RECORD CALC 9 3 13 1 0 0</P>
<P>45 DA-EXEC-FILE-RECORD CALC 15 5 21 2 0 0</P>
<P>50 DA-PACK-EXEC-LINK VIA SET 9 4 14 0 2 0</P>
<P>55 DA-TIP-DMS-AREA-RECORD CALC 13 3 17 1 0 0</P>
<P>60 DA-TIP-DMS-EXEC-LINK VIA SET 2 4 7 0 2 0</P>
<P>70 DA-PENDING-OWNER DIRECT 1 2 4 1 0 0</P>
<P>75 DA-PENDING-DATA VIA SET 23 2 26 0 1 0</P>
<P>80 DA-PACK-HIST CALC W/DUPS 9 1 11 0 0 0</P>
<P>82 DA-EXEC-HIST CALC W/DUPS 12 1 14 0 0 0</P>
<P>84 DA-TIP-AREA-HIST CALC W/DUPS 13 1 15 0 0 0</P>
<P>90 DA-AREA-HIST-OWNER CALC 1 5 7 2 0 0</P>
<P>92 DA-AREA-HISTORY VIA SET 6 2 9 0 1 0</P>
<P>94 DA-COUNT-HISTORY VIA SET 3 2 6 0 1 0</P>
<P>96 DA-PAGE-USAGE VIA SET 15 2 18 0 1 0</P>
<P>98 DA-OVERFLOW-CHAIN VIA SET 10 2 13 0 1 0 end</P>
<P> </P>
<P>fxform 4 *:SETS</P>
<P> </P>
<P> </P>
<P>ALL SETS FOR SCHEMA: FMGDEV-SCH</P>
<P> </P>