Guess what? there is a new ANSI draft for COBOL that is available for review and comment. Unfortunatly by the time you read this, it will be to late for you to get involved, I just found out about it in late May, and the deadline is late June. This column is probably going to hit in September. However, h ere is some of the stuff that they is supposed to be in it;
* Object Orientation
* Standard Arithmetic
* Common exception processing
* Dynamic tables which expand as needed
* Bit and boolean data types
* Compiler directives
* Free format source
* In-Line Comments
* INITIALIZE TO VALUE
* Support for multi-octet character sets
* Dynamic file assignment
* VALUE REPEATED for initializtion of tables
* Partial word replacement
* Next COPY (without REPLACING)
* SET TO FALSE
* Table SORT
I know the one thing that I would really like to see put in, is a macro facility like HP implemented. That is really the one great thing that HP gave us in their COBOL. Speaking of HP and COBOL, I hear that SIGCOBOL gave HP a good talking to over the future of COBOL. I don't know why, but we as COBOL programmers tend to get ignored, even though about 80% of the code out there is probably written in COBOL. Since SPL is dead, and Pascal seems to be dying, and C is a crummy business language, why doesn't HP seem interested in giving us as robust an environment as possible? There is a ton of stuff on the 9000's, even for COBOL, but that's because the official HP COBOL on the 9000 is from MicroFocus.
I don't think it is a viable answer for HP to tell us to go and use Acucobol or Microfocus, when we have so much time and code invested in them. Especially for us commercial developers that aren't interested in paying run time royalties to another company for a 3GL. So make your voices heard, and let the ANSI committee and HP know how you feel and what you think. Let's get the latest COBOL on the HP.
Ok, off the soapbox and on to the utility of the month. As I mentioned last month, I am going to give you a copy of a nifty little program I wrote that makes heavy use of the DBINFO intrinsic.
1 $CONTROL USLINIT
1.1 IDENTIFICATION DIVISION.
1.2 PROGRAM-ID.
DBTINFO.
1.3 AUTHOR.
SHAWN M.GORDON.
1.4 DATE-WRITTEN. 11-13-92.
1.5 DATE-COMPILED.
1.6 *
1.7 ENVIRONMENT DIVISION.
1.8 CONFIGURATION SECTION.
1.9 SOURCE-COMPUTER. HP-3000.
2 OBJECT-COMPUTER.
HP-3000.
2.1 *
2.2 *******************************************************
2.3 *
2.4 * THIS PROGRAM
WILL ACCEPT A BASE NAME AND DATA SET
2.5 * AND ITEM.
THE HELP FEATURES SHOW ALL SETS WITH OPTIONAL
2.6 * SORTS, AND ALL ITEMS
WITH OPTIONAL SORTS. IT WILL ALSO
2.7 * IDENTIFY WHAT SET'S
CONTAIN AN ITEM.
2.8 *
2.9 * SHAWN M. GORDON
3 *******************************************************
3.1 INPUT-OUTPUT SECTION.
3.2 FILE-CONTROL.
3.3
SELECT TFILE ASSIGN TO "DLFKS".
3.4
SELECT SFILE ASSIGN TO "SFILE".
3.5 DATA DIVISION.
3.6 *
3.7 FILE SECTION.
3.8
3.9 FD TFILE
4
RECORD CONTAINS 80 CHARACTERS.
4.1 01 TFILE-RECORD
PIC X(80).
4.2 *
4.3 SD SFILE
4.4 RECORD
CONTAINS 80 CHARACTERS.
4.5 01 SORT-LINE.
4.6 03 SKEY1
PIC X(16).
4.7 03
PIC X(64).
4.8 *
4.9 WORKING-STORAGE SECTION.
5 ******************************************************
5.1 01 ERR
PIC S9(04) COMP VALUE 0.
5.2 01 S1
PIC S9(04) COMP VALUE 0.
5.3 01 EDIT-NUM
PIC ZZ,ZZ9.
5.4 *
5.5 01 H1.
5.6 03
PIC X VALUE %33.
5.7 03
PIC X(03) VALUE '&dD'.
5.8 03
PIC X(17) VALUE "Data Set Name".
5.9 03
PIC X(05) VALUE 'Type'.
6
03
PIC X(11) VALUE " Entries".
6.1 03
PIC X(11) VALUE " Capacity".
6.2 03
PIC X VALUE %33.
6.3 03
PIC X(03) VALUE '&d@'.
6.4 *
6.5 01 H2.
6.6 03
PIC X VALUE %33.
6.7 03
PIC X(03) VALUE '&dD'.
6.8 03
PIC X(17) VALUE "Data Item Name".
6.9 03
PIC X(05) VALUE 'Type'.
7
03
PIC X(07) VALUE "Length".
7.1 03
PIC X(11) VALUE "Occurs".
7.2 03
PIC X VALUE %33.
7.3 03
PIC X(03) VALUE '&d@'.
7.4 *
7.5 01 D1.
7.6 03 D1-SET
PIC X(16) VALUE SPACES.
7.7 03
PIC X(03) VALUE SPACES.
7.8 03 D1-TYPE
PIC X VALUE SPACES.
7.9 03
PIC XX VALUE SPACES.
8
03 D1-ENTRIES
PIC ZZ,ZZZ,ZZ9.
8.1 03
PIC X VALUE SPACES.
8.2 03 D1-CAPACITY
PIC ZZ,ZZZ,ZZ9.
8.3 *
8.4 01 D2.
8.5 03 D2-ITEM
PIC X(16) VALUE SPACES.
8.6 03
PIC X(03) VALUE SPACES.
8.7 03 D2-TYPE
PIC X VALUE SPACES.
8.8 03
PIC X(03) VALUE SPACES.
8.9 03 D2-LEN
PIC Z,ZZ9.
9
03
PIC XX VALUE SPACES.
9.1 03 D2-OCCURS
PIC Z,ZZ9.
9.2 *
9.3 01 DATA-ITEM-TABLE.
9.4 03 DT-ITEM
PIC S9(4) COMP OCCURS 1024.
9.5 *
9.6 01 DS-INFO.
9.7 03 DS-SET
PIC X(16) VALUE SPACES.
9.8 03 DS-TYPE
PIC X(02) VALUE SPACES.
9.9 03 DS-WORD-LENGTH
PIC S9(04) COMP VALUE 0.
10
03 DS-BLOCKING-FACTOR PIC S9(04) COMP VALUE
0.
10.1 03
PIC S9(04) COMP VALUE 0.
10.2 03
PIC S9(04) COMP VALUE 0.
10.3 03 DS-ENTRIES
PIC S9(09) COMP VALUE 0.
10.4 03 DS-CAPACITY
PIC S9(09) COMP VALUE 0.
10.5 *
10.6 01 DI-INFO.
10.7 03 DI-ITEM
PIC X(16) VALUE SPACES.
10.8 03 DI-TYPE
PIC X(02) VALUE SPACES.
10.9 03 DI-LEN
PIC S9(04) COMP VALUE 0.
11
03 DI-OCCURS
PIC S9(04) COMP VALUE 0.
11.1 03
PIC S9(04) COMP VALUE 0.
11.2 03
PIC S9(04) COMP VALUE 0.
11.3 *
11.4 01 WS-DB-DATA-ITEM
PIC X(16) VALUE SPACES.
11.5 01 DS-NUMBER
PIC S9(04) COMP.
11.6 01 DS-ITEM
PIC S9(4) COMP VALUE 0.
11.7 01 DB-BASE-NAME.
11.8 03
PIC XX
VALUE SPACES.
11.9 03 BASE-NAME
PIC X(24) VALUE SPACES.
12 01 DB-PASS-WORD
PIC X(16) VALUE SPACES.
12.1 *
12.2 COPY DBSTAT.
12.3 *
12.4 ********************************************
12.5 PROCEDURE DIVISION.
12.6 A1000-INIT.
12.7
DISPLAY 'Begin run of DBTINFO at ' TIME-OF-DAY.
12.8
DISPLAY 'Copyright 1992 S.M.Gordon & Associates'.
12.9
DISPLAY 'Enter ?? for help at any prompt (almost)'.
13
DISPLAY 'Enter ? for lists on sets and items'.
13.1
13.2 A1100-BASE.
13.3
MOVE SPACES TO DB-BASE-NAME.
13.4
DISPLAY SPACES.
13.5
DISPLAY 'Base name: ' NO ADVANCING.
13.6
ACCEPT BASE-NAME FREE.
13.7
IF BASE-NAME = SPACES
13.8
DISPLAY SPACES
13.9
DISPLAY 'End of DBTINFO at ' TIME-OF-DAY
14
STOP RUN.
14.1
IF BASE-NAME = '??'
14.2
DISPLAY 'Enter TurboImage Base name or <CR> to exit'
14.3
GO TO A1100-BASE.
14.4
INSPECT BASE-NAME TALLYING ERR FOR CHARACTERS BEFORE " ".
14.5
MOVE ';'
TO BASE-NAME(ERR + 1:1).
14.6
14.7
DISPLAY 'Password: ' NO ADVANCING.
14.8
ACCEPT DB-PASS-WORD FREE.
14.9
IF DB-PASS-WORD = SPACES
15
MOVE ';' TO DB-PASS-WORD.
15.1
INSPECT DB-PASS-WORD TALLYING ERR FOR CHARACTERS BEFORE " ".
15.2
MOVE ';'
TO DB-PASS-WORD(ERR + 1:1).
15.3
15.4
DISPLAY 'Mode: ' NO ADVANCING.
15.5
ACCEPT WS-DB-MODE FREE.
15.6
IF WS-DB-MODE = 0
15.7
MOVE 5
TO WS-DB-MODE.
15.8
15.9
CALL "DBOPEN" USING DB-BASE-NAME, DB-PASS-WORD,
16
WS-DB-MODE, DB-STATUS-AREA.
16.1
IF NOT DB-CALL-OK
16.2
CALL "DBEXPLAIN" USING DB-STATUS-AREA
16.3
GO TO A1100-BASE.
16.4 A1100-EXIT. EXIT.
16.5 *
16.6 A1200-SET.
16.7
DISPLAY 'Dataset: ' NO ADVANCING.
16.8
ACCEPT WS-DB-DATA-SET FREE.
16.9
IF WS-DB-DATA-SET = SPACES
17
DISPLAY SPACES
17.1
GO TO A1100-BASE.
17.2
IF WS-DB-DATA-SET = "??"
17.3
DISPLAY 'Enter a valid Dataset name, ? for a list of '
17.4
'available sets.'
17.5
DISPLAY 'Enter ?S for sorted list or ?D for descending '
17.6
'sorted list'
17.7
DISPLAY SPACES
17.8
GO TO A1200-SET.
17.9
18
IF WS-DB-DATA-SET = "?"
18.1
MOVE 1
TO DS-NUMBER
18.2
DISPLAY SPACES
18.3
DISPLAY H1
18.4
MOVE 202
TO WS-DB-MODE
18.5
CALL "DBINFO" USING DB-BASE-NAME, DS-NUMBER,
18.6
WS-DB-MODE, DB-STATUS-AREA, DS-INFO
18.7
PERFORM UNTIL DB-CONDITION-WORD = -21
18.8
MOVE DS-SET TO D1-SET
18.9
MOVE DS-TYPE TO D1-TYPE
19
MOVE DS-ENTRIES TO D1-ENTRIES
19.1
MOVE DS-CAPACITY TO D1-CAPACITY
19.2
DISPLAY D1
19.3
ADD 1
TO DS-NUMBER
19.4
CALL "DBINFO" USING DB-BASE-NAME, DS-NUMBER,
19.5
WS-DB-MODE, DB-STATUS-AREA, DS-INFO
19.6
END-PERFORM
19.7
DISPLAY SPACES
19.8
GO TO A1200-SET.
19.9
20
IF WS-DB-DATA-SET = '?S' OR '?D'
20.1
OPEN OUTPUT TFILE
20.2
MOVE 1
TO DS-NUMBER
20.3
DISPLAY SPACES
20.4
DISPLAY H1
20.5
MOVE 202
TO WS-DB-MODE
20.6
CALL "DBINFO" USING DB-BASE-NAME, DS-NUMBER,
20.7
WS-DB-MODE, DB-STATUS-AREA, DS-INFO
20.8
PERFORM UNTIL DB-CONDITION-WORD = -21
20.9
MOVE DS-SET TO D1-SET
21
MOVE DS-TYPE TO D1-TYPE
21.1
MOVE DS-ENTRIES TO D1-ENTRIES
21.2
MOVE DS-CAPACITY TO D1-CAPACITY
21.3
WRITE TFILE-RECORD FROM D1
21.4
ADD 1
TO DS-NUMBER
21.5
CALL "DBINFO" USING DB-BASE-NAME, DS-NUMBER,
21.6
WS-DB-MODE, DB-STATUS-AREA, DS-INFO
21.7
END-PERFORM
21.8
21.9
CLOSE TFILE
22
IF WS-DB-DATA-SET = "?S"
22.1
SORT SFILE ON ASCENDING KEY SKEY1
22.2
USING TFILE GIVING TFILE
22.3
ELSE
22.4
SORT SFILE ON DESCENDING KEY SKEY1
22.5
USING TFILE GIVING TFILE
22.6
END-IF
22.7
22.8
OPEN INPUT TFILE
22.9
MOVE 0
TO ERR
23
READ TFILE AT END MOVE 1 TO ERR END-READ
23.1
PERFORM UNTIL ERR = 1
23.2
DISPLAY TFILE-RECORD(1:50)
23.3
READ TFILE AT END MOVE 1 TO ERR END-READ
23.4
END-PERFORM
23.5
CLOSE TFILE
23.6
23.7
DISPLAY SPACES
23.8
GO TO A1200-SET.
23.9
24
INSPECT WS-DB-DATA-SET TALLYING ERR FOR CHARACTERS BEFORE " ".
24.1
MOVE ';'
TO WS-DB-DATA-SET(ERR + 1:1).
24.2 A1200-EXIT. EXIT.
24.3 *
24.4 A1300-ITEM.
24.5
DISPLAY SPACES.
24.6
DISPLAY 'Data Item: ' NO ADVANCING.
24.7
ACCEPT WS-DB-DATA-ITEM FREE.
24.8
24.9
IF WS-DB-DATA-ITEM = SPACES
25
GO TO A1200-SET.
25.1
25.2
IF WS-DB-DATA-ITEM = "??"
25.3
DISPLAY "Enter data item name to get information on, or"
25.4
DISPLAY "enter ? to get list of item, ?S to get sorted "
25.5
DISPLAY "list or ?D for descending"
25.6
GO TO A1300-ITEM.
25.7
25.8
IF WS-DB-DATA-ITEM(1:1) = "?"
25.9
DISPLAY SPACES
26
MOVE 104 TO WS-DB-MODE
26.1
MOVE 1
TO S1
26.2
INITIALIZE DATA-ITEM-TABLE
26.3
CALL "DBINFO" USING DB-BASE-NAME, WS-DB-DATA-SET,
26.4
WS-DB-MODE, DB-STATUS-AREA, DATA-ITEM-TABLE
26.5
IF NOT DB-CALL-OK
26.6
CALL "DBEXPLAIN" USING DB-STATUS-AREA
26.7
GO TO A1300-ITEM
26.8
END-IF
26.9
MOVE DT-ITEM(S1) TO EDIT-NUM
27
DISPLAY 'There are ' EDIT-NUM ' items in this dataset'
27.1
DISPLAY H2
27.2
ADD 1 TO S1
27.3
MOVE 102 TO WS-DB-MODE.
27.4
27.5
IF WS-DB-DATA-ITEM = "?"
27.6
PERFORM UNTIL DT-ITEM(S1) = 0
27.7
CALL "DBINFO" USING DB-BASE-NAME, DT-ITEM(S1),
27.8
WS-DB-MODE, DB-STATUS-AREA, DI-INFO
27.9
IF NOT DB-CALL-OK
28
CALL "DBEXPLAIN" USING DB-STATUS-AREA
28.1
END-IF
28.2
MOVE DI-ITEM TO D2-ITEM
28.3
MOVE DI-TYPE TO D2-TYPE
28.4
MOVE DI-LEN TO D2-LEN
28.5
MOVE DI-OCCURS TO D2-OCCURS
28.6
DISPLAY D2
28.7
ADD 1 TO S1
28.8
END-PERFORM
28.9
GO TO A1300-ITEM.
29
29.1
IF WS-DB-DATA-ITEM = '?S' OR '?D'
29.2
OPEN OUTPUT TFILE
29.3
PERFORM UNTIL DT-ITEM(S1) = 0
29.4
CALL "DBINFO" USING DB-BASE-NAME, DT-ITEM(S1),
29.5
WS-DB-MODE, DB-STATUS-AREA, DI-INFO
29.6
MOVE DI-ITEM TO D2-ITEM
29.7
MOVE DI-TYPE TO D2-TYPE
29.8
MOVE DI-LEN TO D2-LEN
29.9
MOVE DI-OCCURS TO D2-OCCURS
30
WRITE TFILE-RECORD FROM D2
30.1
ADD 1
TO S1
30.2
END-PERFORM
30.3
30.4
CLOSE TFILE
30.5
IF WS-DB-DATA-ITEM = "?S"
30.6
SORT SFILE ON ASCENDING KEY SKEY1
30.7
USING TFILE GIVING TFILE
30.8
ELSE
30.9
SORT SFILE ON DESCENDING KEY SKEY1
31
USING TFILE GIVING TFILE
31.1
END-IF
31.2
31.3
OPEN INPUT TFILE
31.4
MOVE 0
TO ERR
31.5
READ TFILE AT END MOVE 1 TO ERR END-READ
31.6
PERFORM UNTIL ERR = 1
31.7
DISPLAY TFILE-RECORD(1:50)
31.8
READ TFILE AT END MOVE 1 TO ERR END-READ
31.9
END-PERFORM
32
CLOSE TFILE
32.1
32.2
DISPLAY SPACES
32.3
GO TO A1300-ITEM.
32.4
32.5 INSPECT WS-DB-DATA-ITEM
TALLYING ERR FOR CHARACTERS BEFORE " ".
32.6
MOVE ';'
TO WS-DB-DATA-SET(ERR + 1:1).
32.7
32.8
MOVE 204
TO WS-DB-MODE.
32.9
INITIALIZE DATA-ITEM-TABLE.
33
CALL "DBINFO" USING DB-BASE-NAME, WS-DB-DATA-ITEM,
33.1
WS-DB-MODE, DB-STATUS-AREA, DATA-ITEM-TABLE.
33.2
IF NOT DB-CALL-OK
33.3
CALL "DBEXPLAIN" USING DB-STATUS-AREA
33.4
GO TO A1300-ITEM.
33.5
MOVE 1
TO S1.
33.6
MOVE DT-ITEM(S1) TO EDIT-NUM.
33.7
DISPLAY SPACES.
33.8
DISPLAY 'There are ' EDIT-NUM ' datasets that contain '
33.9
'this data item.'.
34
DISPLAY H1.
34.1
34.2
ADD 1 TO S1.
34.3
MOVE 202
TO WS-DB-MODE.
34.4
PERFORM UNTIL DT-ITEM(S1) = 0
34.5
CALL 'DBINFO' USING DB-BASE-NAME, DT-ITEM(S1),
34.6
WS-DB-MODE, DB-STATUS-AREA, DS-INFO
34.7
MOVE DS-SET TO D1-SET
34.8
MOVE DS-TYPE TO D1-TYPE
34.9
MOVE DS-ENTRIES TO D1-ENTRIES
35
MOVE DS-CAPACITY TO D1-CAPACITY
35.1
DISPLAY D1
35.2
ADD 1 TO S1
35.3
END-PERFORM.
35.4
35.5
GO TO A1300-ITEM.
35.6 A1300-EXIT. EXIT.
35.7 *
RUN DBTINFO.SHAWN
Begin run of DBTINFO at 15:12:46
Copyright 1992 S.M.Gordon & Associates
Enter ?? for help at any prompt (almost)
Enter ? for lists on sets and items
Base name: PTNDB.DATABASE
Password:
Mode:
Dataset: ??
Enter a valid Dataset name, ? for a list of available
sets.
Enter ?S for sorted list or ?D for descending sorted
list
Dataset: ?
Data Set Name Type
Entries Capacity
PTNR-CNTL-M
M 1,200
3,001
COMM-MST-M
M 1
101
INH-APPL-M
M 0
50
PTN-APPL-M
M 0
50
PTNR-COMM-A
A 4
501
PTNR-MSTR-M
M 168
301
PTNR-MSTR2-M M
168 301
PTN-TO-PTN-M M
0 101
SECURITY-M
M 2
101
SYS-CONTROL-M M
1 3,001
ERR-MSG-M
M 599
1,001
VERIFY-M
M 0
101
PTNR-ERR-DSEP-A A
24 301
GROUP-MSTR-A A
525 653
TRANS-MSTR-A A
528 1,001
PTNR-USER-A
A 0
301
PTNR-USER-TYPE-A A
0 301
HELP-MSG-A
A 142
3,001
PARM-A
A 9
3,001
EXTERNAL-A
A 0
1,001
INTERNAL-A
A 0
1,001
VEND-EDI-PTNR-A A
0 1,001
VEND-MAN-PTNR-A A
0 1,001
PTNR-ERR-DSEP-D D
24 3,003
PARM-D
D 162
3,010
DATACALL-D
D 4
3,002
DATASCHED-D
D 0
3,003
GROUP-D
D 525
1,002
TRANSACTION-D D
528 10,002
TRAN-ACTN-D
D 0
301
HELP-MSG-D
D 2,949
3,500
PTNR-USER-D
D 0
302
GENERIC-D
D 0
5,004
VEND-PTNR-D
D 0
1,005
Dataset: ?S
Data Set Name Type
Entries Capacity
COMM-MST-M
M 1
101
DATACALL-D
D 4
3,002
DATASCHED-D
D 0
3,003
ERR-MSG-M
M 599
1,001
EXTERNAL-A
A 0
1,001
GENERIC-D
D 0
5,004
GROUP-D
D 525
1,002
GROUP-MSTR-A A
525 653
HELP-MSG-A
A 142
3,001
HELP-MSG-D
D 2,949
3,500
INH-APPL-M
M 0
50
INTERNAL-A
A 0
1,001
PARM-A
A 9
3,001
PARM-D
D 162
3,010
PTN-APPL-M
M 0
50
PTN-TO-PTN-M M
0 101
PTNR-CNTL-M
M 1,200
3,001
PTNR-COMM-A
A 4
501
PTNR-ERR-DSEP-A A
24 301
PTNR-ERR-DSEP-D D
24 3,003
PTNR-MSTR-M
M 168
301
PTNR-MSTR2-M M
168 301
PTNR-USER-A
A 0
301
PTNR-USER-D
D 0
302
PTNR-USER-TYPE-A A
0 301
SECURITY-M
M 2
101
SYS-CONTROL-M M
1 3,001
TRAN-ACTN-D
D 0
301
TRANS-MSTR-A A
528 1,001
TRANSACTION-D D
528 10,002
VEND-EDI-PTNR-A A
0 1,001
VEND-MAN-PTNR-A A
0 1,001
VEND-PTNR-D
D 0
1,005
VERIFY-M
M 0
101
Dataset: TRANSACTION-D
Data Item: ?
There are 29 items in this dataset
Data Item Name Type Length Occurs
PTNR-QUAL-RTG X
54 1
PTNR-Q-RTG-TRANS X
60 1
PTR-TRNS-CTL-SEG X
4 1
PTR-EXPT-TRN-ACK X
2 1
PTR-TRN-ACK-TRNS X
6 1
PTR-TEST-TRANS X
2 1
PTR-TRN-ACPT-FL X
2 1
PTR-IN-UNH-VER-U X
2 1
PTR-IN-UNH-VERS X
12 1
PTR-TRANS-SND-FL X
2 1
PTR-OT-UNH-VER-U X
2 1
PTR-OUT-UNH-VERS X
12 1
PTR-TRN-SND-VERS X
12 1
PTR-UNH-VERS-NBR X
4 1
PTR-UNH-VERS-REL X
4 1
PTR-UNH-VERS-ASS X
6 1
PTR-UNH-CTL-AGCY X
2 1
PTR-UNH-CMN-AC-R X
36 1
PTR-UNH-SEQ-TRFR X
2 1
PTR-UNH-1-LT-TFR X
2 1
PTR-TRANSL-SCH-F Z
2 1
PTR-TRANSL-SCH-T Z
2 1
PTR-IN-MAP-PGM X
8 1
PTR-OT-MAP-PGM X
8 1
PTR-GROUP-ID X
6 1
PTR-PRIORITY-CLS X
2 1
PTR-HPDESK-INFO X
40 1
PTR-APPL-RECLEN X
4 1
AVAILABLE-68 X
68 1
Data Item: PTNR-QUAL-RTG
There are 10 datasets that contain
this data item.
Data Set Name Type
Entries Capacity
PTN-APPL-M
M 0
50
PTNR-MSTR-M
M 168
301
PTNR-MSTR2-M M
168 301
PTNR-USER-A
A 0
301
PTNR-ERR-DSEP-D D
24 3,003
DATACALL-D
D 4
3,002
DATASCHED-D
D 0
3,003
GROUP-D
D 525
1,002
TRANSACTION-D D
528 10,002
PTNR-USER-D
D 0
302
Data Item:
Dataset:
Base name:
End of DBTINFO at 15:13:36
The purpose to the program was to be able to find fields in data bases I wasn't familiar with, especially on large data sets. What it does is prompt for a base, password, and mode, when you get to the data set prompt you can enter a question mark to get a list, a ?S to get a sorted list, or ?D to get a sorted list in descending order, of the data sets. You can use these same responses when being prompted for the data item. If you enter an actual data item, you will get a list of the data sets that contain the item, and some information about the sets.
The source code should be pretty self explanatory, to get a description of what each mode does in the call to DBINFO, just check your IMAGE manual. The modes are really the most confusing part.
Next month I am going to revist function keys. I showed an example of a program that save and restored function keys earlier this year, but I never really talked about the programmatic loading and reading of them. I got a note on compuserve asking me about it, so it seemed like a good topic to cover. Tally Ho