(makedic.4gl) Columns info for tables!
Posted in 1996
This is a multi-part message in MIME format.
--------------47046CAB3449
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Hi, this is the one containing the makedic.4gl, sorry i made a mistake,
Somebody asked about obtaining information from tables, I as thinking
if he wanted it for documentation pourpose like:
<Put the Project Name here> DICCTIONARY STRUCTURE
<Put your company name here>
------------------------------------------------------------------------
Entity: ALUXBOL Type : TABLE
Description:
Sequence ColName ColType Length Scale Allow Null
1 numboleta INTEGER 4 0 N
2 codpersona INTEGER 4 0 N
3 calificacion CHAR 1 0 N
.
.
.
If you want this type of documentation, here is a 4gl program i wrote
2 years ago, i hope this help.(4gl attached as file makedic.4gl).
I hope this help,
Regards,
--------------------------------------------------------------------
Mario Estrada Rosa | LESCO, S.A. (Guatemala City ,Central America)
Systems Engineer | lesco@guate.net
| Phone (502) 3318116
| Fax (502) 3348447
|
| SISTECO, S.A.
| sisteco@guate.net
| Phone (502) 3340214
| Fax (502) 3344835
| INFORMIX & SUN MicroSystems
| Support Department
---------------------------------------------------------------------
--------------47046CAB3449
Content-Type: text/plain; charset=us-ascii; name="MAKEDIC.4GL"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="MAKEDIC.4GL"
####################################################################
#
# Program: makedic.4gl
# Author : Mario Estrada
# Date : Sept. 18 1994
#
# Sintax : <makedic> <database-name> <Project-name> <output-file>
#
# Comments:
# Generates a Dictionary File, for a better presentation
# in your documentation.
#
# You can compile it: c4gl makedic.4gl -o makedic.4ge and then run it
# as follows:
# makedic.4ge <database-name> <Project-name> <output-file>
#
# Or compile it with: fglpc makedic.4gl and then run it as follows:
#
# fglgo makedic <database-name> <Project-name> <output-file>
#
GLOBALS
DEFINE g_tabname CHAR(20),
g_dbname CHAR(20),
g_tabid INTEGER,
g_trans SMALLINT,
g_numparam INTEGER,
g_param1 CHAR(02),
g_param3 CHAR(02),
g_tecla_val INTEGER,
g_tecla_nom CHAR(10),
g_coltype CHAR(05),
g_nomemp CHAR(40),
g_output CHAR(40),
gr_systables RECORD
tabname char(18),
owner char(8),
dirpath char(64),
tabid integer,
rowsize smallint,
ncols smallint,
nindexes smallint,
nrows integer,
created date,
version integer,
tabtype char(1),
audpath char(64)
END RECORD,
gr_syscolumns RECORD
colname char(18),
tabid integer,
colno smallint,
coltype smallint,
collength smallint
END RECORD,
gr_sysindexes RECORD
idxname char(18),
owner char(8),
tabid integer,
idxtype char(1),
clustered char(1),
part1 smallint,
part2 smallint,
part3 smallint,
part4 smallint,
part5 smallint,
part6 smallint,
part7 smallint,
part8 smallint
END RECORD
END GLOBALS
DEFINE
V RECORD
tabid INTEGER,
tabname CHAR(18),
tabtype CHAR(15),
sequence SMALLINT,
colname CHAR(18),
colType CHAR(10),
collength INTEGER,
colScale INTEGER,
AllowNull CHAR(01)
END RECORD
MAIN
LET g_dbname = Arg_Val(1)
DATABASE g_dbname
LET g_nomemp = Arg_val(2)
LET g_output = Arg_val(3)
DECLARE SysTab SCROLL CURSOR FOR
SELECT * INTO gr_systables.*
FROM SYSTABLES
WHERE TABID > 99
ORDER BY TABNAME
DECLARE SysIndex SCROLL CURSOR FOR
SELECT * INTO gr_sysindexes.*
FROM SYSINDEXES
WHERE TABID > 99
DECLARE ColTab SCROLL CURSOR FOR
SELECT * INTO gr_syscolumns.*
FROM SYSCOLUMNS
WHERE TABID = gr_systables.tabid
{ ENTITIES }
START REPORT SysTabRep TO g_output
FOREACH SysTab
LET V.sequence = 0
FOREACH ColTab
LET v.tabid = gr_systables.tabid
LET v.tabname = UPSHIFT(gr_systables.tabname)
LET v.tabtype = TABTYPE(gr_systables.tabtype)
LET v.sequence = v.sequence + 1
LET v.colname = gr_syscolumns.colname
CALL Col_Type(gr_syscolumns.collength,
gr_syscolumns.coltype)
RETURNING v.coltype,v.collength,v.colscale,v.allownull
OUTPUT TO REPORT SysTabRep(v.*)
END FOREACH
END FOREACH
FOREACH SysIndex
LET v.tabid = gr_sysindexes.tabid
LET v.tabname = UPSHIFT(gr_sysindexes.idxname)
LET v.tabtype = TABTYPE(gr_sysindexes.idxtype)
{ Part1 }
CALL GET_COL(gr_sysindexes.tabid,
gr_sysindexes.part1) RETURNING STATUS
IF STATUS = 0 THEN
CALL Col_Type(gr_syscolumns.collength,
gr_syscolumns.coltype)
RETURNING v.coltype,v.collength,v.colscale,v.allownull
LET v.sequence = 01
LET v.colname = gr_syscolumns.colname
OUTPUT TO REPORT SysTabRep(v.*)
END IF
{ Part2 }
CALL GET_COL(gr_sysindexes.tabid,
gr_sysindexes.part2) RETURNING STATUS
IF STATUS = 0 THEN
CALL Col_Type(gr_syscolumns.collength,
gr_syscolumns.coltype)
RETURNING v.coltype,v.collength,v.colscale,v.allownull
LET v.sequence =02
LET v.colname = gr_syscolumns.colname
OUTPUT TO REPORT SysTabRep(v.*)
END IF
{ Part3 }
CALL GET_COL(gr_sysindexes.tabid,
gr_sysindexes.part3) RETURNING STATUS
IF STATUS = 0 THEN
CALL Col_Type(gr_syscolumns.collength,
gr_syscolumns.coltype)
RETURNING v.coltype,v.collength,v.colscale,v.allownull
LET v.sequence = 03
LET v.colname = gr_syscolumns.colname