Ingres/Vision System Catalogs

                         Document #: US-25156,EN
------------------------------------------------------------------------------

Major subject: vision    Minor subjects: vision_catalogs

Keywords: system_catalogs, tech_notes

Abstract:
INGRES/Vision System Catalogs. The following descriptions 
of several INGRES/Vision System Catalogs are more detailed 
than those in the INGRES/SQL Reference Manual. Catalog ii_menuargs,
Catalog ii_vqjoins, Catalog ii_vqtabcols, Catalog ii_vqtables,
Application Flow Diagram, Escape Code.


Expert note:
INGRES/Vision System Catalogs
=============================

The following descriptions of several INGRES/Vision System Catalogs are
more detailed than those in the INGRES/SQL Reference Manual.  These new
descriptions will be added to the next version of the reference manual. 

o	Catalog ii_menuargs
o	Catalog ii_vqjoins
o	Catalog ii_vqtabcols
o	Catalog ii_vqtables
o	Application Flow Diagram
o	Escape Code

These detailed descriptions are provided for your convenience, as with 
all INGRES Extended System Catalogs, the use of these catalogs is not 
supported by Ingres and their content and layout may change at any time. 


Catalog ii_menuargs
-------------------

Column Name	Data Type	Description
- - - - - -	- - - - - - 	- - - - - - - - - - - - - - - - - - - -
object_id	integer		Object id of frame.

mu_text 	varchar(32)	Menu item text.

mu_seq		smallint	Sequence number beginning at 0 (for
				argument ordering).

mu_field	varchar(32)	Field name in called frame to assign value
				to.  If field name is of the form "X.Y",
				then this will contain the "X" portion only.

mu_column	varchar(32)	Portion of field name in called frame to
				assign value to.  Only used when field name
				is of form "X.Y", in which case this
				contains the "Y" portion.

mu_expr		varchar(240)	4GL expression (field, constant, BYREF(),
				etc) in the parent frame to assign to
				field in the called frame.


Catalog ii_vqjoins
------------------

Column Name	Data Type	Description
- - - - - -	- - - - - - 	- - - - - - - - - - - - - - - - - - - -
object_id	integer		Object id of the frame.

vq_seq		smallint	Sequence number (for ordering).

join_type	smallint	Type of join specified by this row:
				0 = Master/Detail join
				1 = Master/Lookup join
				2 = Detail/Lookup join

join_tab1	smallint	Index to table 1 of the join.  Relative
				table number in visual query beginning 
				with 0.

join_tab2	smallint	Index to table 2 of the join.  Relative
				table number in visual query beginning 
				with 0. (table 2 is always below table
				1 in visual query).

join_col1	smallint	Join column for table 1.  Index into
				array of columns for table 1.  (Same
				as ii_vqtabcols.vq_seq.)

join_col2	smallint	Join column for table 2.  Index into
				array of columns for table 2.  (Same
				as ii_vqtabcols.vq_seq.)


Catalog ii_vqtabcols
--------------------

Column Name	Data Type	Description
- - - - - -	- - - - - - 	- - - - - - - - - - - - - - - - - - - -
object_id	integer		Object id of the frame.

vq_seq		smallint	Column sequence number (for ordering).

tvq_seq		smallint	Sequence number of table in visual query
				from ii_vqtables.

col_name	varchar(32)	Column name.

ref_name	varchar(32)	Name used on the form for field containing
				data.

adf_type	smallint	Type information for column.  See
				description of 
				iicolumns.column_ingdatatype for details.

adf_length	integer		Column size in bytes.

adf_scale	integer		Currently not used.

col_flags	integer		This column contains multiple pieces of
				information about the column in a bitmap
				format.  The following values may be
				present (expressed in Hex):
				1 = Column is to be used on form/report
				2 = Column is joined to a detail table
				    and must be displayed
				4 = Column is joined to a lookup table
				    and must be displayed
				8 = Column is a subordinate join field;
				    therefore it can't be displayed
				0x10 =	Column is sequenced (generate new
					surrogate key value for INSERT 
					statements)
				0x20 =	Column is descending (for sort)
				0x40 =	Column is part of the table's
					unique key
				0x100 =	Set if column allows defaults

col_sortorder	smallint	Sort order for this column.  Set to 0 if
				not part of sort sequence.  For lookup
				tables, this gives the order of the column
				in the lookup frame.

col_info	varchar(240)	Information entered by developer for this
				column in visual query.  For Browse and
				Update frames, this is a query restriction
				and is added to the WHERE clause of the
				SELECT statement.  For Append frames,
				this gives default value information and
				is either used in 4gl assignment statements
				for a displayed column, or in the INSERT
				statement for a not-displayed column.


Catalog ii_vqtables
-------------------

Column Name	Data Type	Description
- - - - - -	- - - - - - 	- - - - - - - - - - - - - - - - - - - -
object_id	integer		Object id of the frame.

vq_seq		smallint	Order of table in visual query.

vq_mode		smallint	This column contains multiple pieces of
				information about the frame as a whole,
				in a bitmap format (although note that
				the first 4 entries below are mutually
				exclusive; only one of them may appear).
				May contain the following values (in Hex):
				0 = Frame has no tables (menu frame).
				1 = Master/Detail frame.
				2 = Master only in a table field.
				3 = Master only in simple fields.

				0x10 = If set, then the "Qualification
				Processing" frame behavior is "Disabled".
				(can only be set for Browse & Update frames)
				0x20 = If set, then the "Next Master
				Menuitem" frame behavior is "Disabled".
				(can only be set for Browse & Update frames)
				0x40 = If set, then the "Hold Locks on
				Displayed Data" frame behavior is set to
				"Yes" (can only be set for Update frames).

tab_name	varchar(32)	Table name.

tab_owner	varchar(32)	Table owner.

tab_section	smallint	Visual query section table is in:
				0 = table is in master section
				1 = table is in detail section

tab_usage	smallint	How this table is used in the visual query:
				0 = Append table
				1 = Update table
				2 = Browse table
				3 = Lookup table

tab_flags	integer		This column contains multiple pieces of
				information about the table, in a bitmap
				format.  Much of this is set by the frame
				behaviors in the visual query.  The
				following values may be present (in Hex):

				0x1 =	If a lookup table, then lookup
					requires a qualification frame.
					If an update table, then insertions
					are allowed into the table field 
					(only relevant to the detail table,
					and to masters in table field)
				0x2 =	OK to Delete data in this table.
				0x4 =	Update of join field cascades to
					detail; if bit is clear, then Update
					of join field not allowed
					("restricted") if details exist.
				0x8 =	Delete of master cascades to detail;
					if bit is clear, then Delete of
					master not allowed ("restricted")
					if details exist.
				0x10 =	Table does not have a unique key.
				0x20 =	DBMS will handle referential
					integrity on details when join field
					is changed.  Generated code updates
					master table only.
				0x40 =	DBMS will handle referential 
					integrity on details when master is
					Deleted.


Application Flow Diagram
------------------------
VISION's Application Flow Diagram is built from Menu item information
in the ii_abfdependencies catalog (described in the INGRES/SQL Reference
Manual).


Escape Code
-----------
Frame Escape Code is stored in the ii_encodings catalog (described in the
INGRES/SQL Reference Manual).  All escape code for a frame is combined into
one (possibly sequenced) entry in ii_encodings.  Each piece of escape code
in the entry is preceded by a type code: 1 = form-start, 2 = form-end, 
3 = query-start, 4 = query-new-data, 5 = query-end, 6 = append-start,
7 = append-end, 8 = update-start, 9 = update-end, 10 = delete-start,
11 = delete-end, 12 = menu-start, 13 = menu-end, 14 = field-entry,
15 = field-change, 16 = field-exit, 17 = user-menuitem.  The entire 
entry is prefixed with version and other escape code related information.



Releases affected:  6.4/00(all.all) -   Releases not affected: 
Errors:                                                             
Bugs/SIRS:                                                             
------------------------------------------------------------------------------
Ingres Database Reference
To William's Home Page

© William Yuan 2000

Email William