(including TurboIMAGE/XL Enhancements)
by: Image/SQL team, Commercial Systems Division
The following subjects are covered in this document:
IMAGE/SQL G.1 will be available on the MPE/iX 5.0 Express 3 release.
What is IMAGE/SQL?
IMAGE/SQL is the next generation of TurboIMAGE/XL, a database
product suite that uses
relational-access technology. It is an enhanced combination of
TurboIMAGE/XL and what was formerly known as ALLBASE/Turbo
CONNECT (ATC). IMAGE/SQL provides relational access to your
TurboIMAGE/XL data using the industry-standard Structured Query
Language (SQL). While ATC only provided read capability,
IMAGE/SQL includes both read and write capability using ANSI
standard functionality.
Closely tuned to the architecture of Hewlett-Packard computers,
IMAGE/SQL gives you flexibility in designing and using new
SQL database applications. At the same time, you can continue to
use your existing TurboIMAGE/XL applications without noticeable
differences. Note that with IMAGE/SQL, you do not have to
convert, recompile, or make changes to your existing
applications. Your TurboIMAGE/XL database can now be
simultaneously accessed by SQL applications as well as your
existing TurboIMAGE/XL applications. With IMAGE/SQL, you can
continue to enhance your existing TurboIMAGE/XL applications or
develop new ones.
IMAGE/SQL includes the Client/Server
components ALLBASE/PC API and ALLBASE/NET. This means that
PC-based client applications using industry-standard SQL can use
IMAGE/SQL to access TurboIMAGE/XL data on an HP 3000 host
system. With the increased usage of PCs and rapid adoption of
Client/Server technology, IMAGE/SQL extends the availability
of your TurboIMAGE/XL data to report writers, 4GLs, and other
applications running on a PC network.
As an IMAGE/SQL user,
you benefit by:
- Leveraging your investment
Your existing
investment in TurboIMAGE/XL is preserved while you take advantage
of relational technology.
- Accessing new tools
Available SQL
Client/Server tools allow you to view data from TurboIMAGE/XL,
ALLBASE/SQL, or third-party databases.
- Increasing your
productivity
Because SQL uses a common interface to access
TurboIMAGE/XL, ALLBASE/SQL, and third-party SQL databases, your
productivity will improve.
Components of IMAGE/SQL
IMAGE/SQL includes TurboIMAGE/XL, a restricted version of ALLBASE/SQL,
and a database administration tool called IMAGESQL (formerly known as
ATCUTIL) that links them together. The following discussion describes the
components of IMAGE/SQL in more detail.
- TurboIMAGE/XL
- A set of programs and procedures used to create, maintain, and access
TurboIMAGE/XL databases.
- ALLBASE/SQL
- A set of programs and procedures used to create, maintain, and access
relational database environments (also known as DBEnvironments). The SQL part
of IMAGE/SQL is ALLBASE/SQL, with a restriction on the the amount of data you
can store in user SQL tables. IMAGE/SQL includes components needed to provide
relational access to TurboIMAGE/XL databases, including the following:
ISQL lets you enter SQL statements at the keyboard and observe
query results, messages, and other information on a video
display. ISQL is the main tool for IMAGE/SQL programmers and
database administrators to create and modify DBEnvironments,
load and unload data, and enter SQL queries.
SQLUtil is a
database administrator's tool for maintaining relational database
environments.
SQLGEN is a database administrator's tool used to
generate commands to recreate all or part of an existing
database environment.
SQLMON is an online diagnostic tool used to
monitor the activity of a database environment.
Preprocessors are tools used to convert C,
COBOL, FORTRAN, or Pascal source programs containing SQL
statements into source code that can be compiled.
ALLBASE/SQL PC API is software that provides access from a Microsoft
Windows based PC to ALLBASE/SQL and TurboIMAGE/XL databases residing on
HP-PA RISC database servers. You need to use one of several available PC
Client/Server or decision support tools to build your application or query.
ALLBASE/NET works in conjunction with ALLBASE/SQL PC API to
connect users with databases residing on an HP 3000 server.
- IMAGESQL (ATCUTIL)
- A database administrator's tool used to manage TurboIMAGE/XL databases
in a relational-access environment. IMAGESQL registers information about a
TurboIMAGE/XL database into the system catalog of an ALLBASE/SQL
DBEnvironment. In IMAGE/SQL, the TurboIMAGE data sets look like SQL tables,
with one exception. SQL statements that update, insert, or delete data
ultimately get routed to the TurboIMAGE storage manager when TurboIMAGE
data sets are referenced.
As a result, the large suite of Client/Server tools that support ALLBASE/SQL
now support TurboIMAGE/XL too!
In IMAGE/SQL, the size of your TurboIMAGE databases is not restricted in any
way, but you can only store 12 MegaBytes (3000 4K pages) of data in
user-defined SQL tables. For an unrestricted copy of ALLBASE/SQL, you must
purchase ALLBASE/SQL.
How do I get IMAGE/SQL?
IMAGE/SQL can now be purchased
by TurboIMAGE/XL users. Special pricing from $2,000 to $20,000
has been established for these users. This special price is
dependent on the number of users on a system and will be in
effect until November 1, 1995. You must have TurboIMAGE/XL on
your support contract to be eligible to purchase IMAGE/SQL.
For more information, please call your sales representative or
the sales office in your region.
Special considerations
If you are updating from an earlier release of IMAGE/SQL and you have created
SQL data, you must perform the ALLBASE/SQL migration to migrate your
DBEnvironment to the current G.1 format. For more information, refer to the
"Special Considerations" section in the
ALLBASE/SQL Enhancements in G.1
document or the ALLBASE/SQL Database Administration Guide
(36216-90005).
Additional information
IMAGE/SQL can be automatically installed using HP AUTOINST. The
manuals included with IMAGE/SQL are:
- Getting Started With HP IMAGE/SQL (36385-90008)
- HP IMAGE/SQL Administration Guide (36385-90001)
- HP PC API Users Guide for ALLBASE/SQL and IMAGE/SQL
(36216-90104)
- ALLBASE/SQL Message Manual (36216-90009)
- ISQL Reference Manual for ALLBASE/SQL and IMAGE/SQL
(36216-90096)
IMAGE/SQL enhancements in g.1
The following enhancements to IMAGE/SQL are described in this section:
Indexed access in IMAGE/SQL
The ALLBASE/SQL Optimizer is now
aware of TurboIMAGE search items (including packed and zoned),
key items, and third-party indexes (Bradmark's Superdex and DISC's
Omnidex). The Optimizer decides which indexes to use and the
proper order of operations to ensure that the most efficient
path is used. As a result, data is retrieved more efficiently
when a mapped column represents a TurboIMAGE search item, key
item, or a third-party index. Chained reads are used whenever
possible for packed and zoned search items as well. Performance
gain is also present for deletes as well as updates.
For this enhancement, the newest version of
software that supports this enhancement is required from both
third parties.
In order to make this enhancement, modifications were made to IMAGE/SQL,
TurboIMAGE, ALLBASE/SQL, and the third-party software. The following
changes are briefly described below:
IMAGESQL (atcutil)
The IMAGESQL commands ATTACH, DETACH, SPLIT, and UPDATE have been modified
as follows:
- ATTACH
- TurboIMAGE master keys, detail search items:
ATTACH will
trigger registration of all TurboIMAGE master keys and detail
search items as unique and non-unique indexes respectively in
the DBE specified by the SET SQLDBE statement. If your database
is already attached, you will need to do DETACH and ATTACH. For
registering TurboIMAGE keys/search items, the ATTACH command
works with one DBE at-a-time.
Third-party keys:
If your database
is configured for third-party indexes (TPI) and enabled for
indexing, it will attempt to register the third-party indexes as
non-unique B-tree indexes in all DBEs to which the database is
attached. In other words, if your database is enabled for TPI,
you do not need to issue the DETACH command. You may use a
temporary DBE initially to attach to it, which will cause
third-party indexes to be registered in all DBEs to which the
database is attached. This means that with a single ATTACH (to a
new or temporary DBE), you can register third-party indexes in
all DBEs to which the database is attached.
NOTE:
Registering in
several DBEs is a complex task. When this design issue was
discussed with users, two schools of thought emerged: some users
decided for one DBE, others proposed that all DBEs should be
handled. It was decided to register TurboIMAGE keys and search
items in the specified DBE and third-party indexes in all DBEs to
which the database is attached.
Example of ATTACH:
The following
sample run illustrates how the enhancement works. The database
"testdb" is already configured for TPI, however, it is not
attached to any DBE.
:RUN IMAGESQL.PUB.SYS
HP36385B B.G1.04 IMAGE/SQL Utility THU, JAN 2, 1995,
5:18 PM (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1993
>>turbo testdb
>>dbe maindbe
DBE does not exist, do you want to create one? [Y/N]: Y
Creating DBE now ...
>>attach
Split 3 compound source field(s) (ATCWARN 32062).
Mapped 74 source table/source field name(s) (ATCWARN 32062)
>>exit
END OF PROGRAM
TurboIMAGE keys/search
items, as well as the third-party indexes, are now registered in
the ALLBASE/SQL system catalog.
- DETACH
- DETACH only affects the
DBE named in the SET SQLDBE statement. Information about all
tables, indexes, etc. is removed from the specified DBE. It works
the same way for TPI as well as for a non-TPI database.
- SPLIT
- SPLIT drops the table, i.e., all information about the table
including the indexes, is removed from the system catalog.
Information about the table, TurboIMAGE keys/search items, and
third-party indexes (if any) will be added again to the
ALLBASE/SQL system catalog.
This command also only affects the
DBE named in the SET SQLDBE statement. If you want a similar
change in other DBEs, use the SET DBE command for another DBE and
use the same SPLIT command. Note that if you split a TurboIMAGE
master key or a search item, it will not be registered as an
index.
- UPDATE TYPE
- This is similar to SPLIT, however, it may deal
with one or more tables as the UPDATE command is applicable to
either one table or all tables in the database that have the
specific type. The UPDATE TYPE command only affects the DBE
named in the SET SQLDBE statement.
Dbutil (for indexed access in IMAGE/SQL)
DBUTIL is enhanced for third-party indexes. The
ENABLE, DISABLE, and SHOW statements have been modified for
third-party index registration (not TurboIMAGE keys/search items
registration) as follows:
- ENABLE database FOR INDEXING
- If your
database is already attached to at least one DBE and you enable
it for indexing (third-party indexes must be configured before
you use this command), an attempt will be made to register the
third-party indexes in all DBEs to which the database is
attached. If the registration fails in one DBE, it will proceed
to register in subsequent existing DBEs. If such an attempt
fails in one or more DBEs, upon completion of the last attempt, a
message will be displayed as follows.
Registration of Third-Party Indexes failed from these
HP SQL DBEnvironments
The names of DBEs in which the third-party registration failed will be listed.
- DISABLE database FOR INDEXING
- If the third-party
indexes are registered in the ALLBASE/SQL system catalog, the
DISABLE database for INDEXING command will trigger removal of the
third-party indexes information from all DBEs to which the
database is attached. If removal of this information fails in
one DBE, it will proceed with subsequent existing DBEs. If such
an attempt fails in one or more DBEs, upon completion of the
last attempt, a message will be displayed as follows:
Dropping of Third-Party Indexes failed from these HP SQL
DBEnvironments
This is followed by names of DBEs in which the dropping of third-party indexes
failed.
In this case, the database will still remain
ATTACHed, however, the ALLBASE/SQL Optimizer will have no
knowledge of the third-party indexes. Therefore, a serial scan
will be selected for the queries utilizing third-party keys.
This command will not impact TurboIMAGE keys/search items, which
will remain known to the Optimizer.
In brief, DETACH (of
IMAGESQL) only deletes information about third-party indexes
from one DBE. DISABLE (of DBUTIL) attempts to remove information
on third-party indexes from all DBEs to which the database is
attached, nevertheless, the database remains ATTACHED.
- SHOW database FLAGS or SHOW database ALL
- If the third-party indexes are registered in
one or more DBEs, the FLAGS option will display a message
indicating that the third-party indexes are registered. The ALL
option displays all DBEs to which the database is attached, as
well as the DBEs in which the third-party indexes are registered.
New system catalog views (for indexed access in IMAGE/SQL)
Four new views have been added to the ALLBASE/SQL system
catalog to enable the DBA and other users to view TurboIMAGE
metadata used by the SQL Optimizer. The Optimizer determines the
most efficient path to the desired data, such as which indexes to
use and the proper order of operations. The DBA should
periodically issue an UPDATE STATISTICS command on each
TurboIMAGE data set to refresh the statistics that are displayed
on these views and ensure that the Optimizer makes correct
decisions. After all statistics have been updated, the DBA
should issue VALIDATE commands to revalidate any stored sections
that may exist on the data sets.
For example:
isql=> update statistics for table music.albums;
isql=> update statistics for table music.composers;
...
isql=> validate all modules with autocommit;
isql=> validate all procedures with autocommit;
For more
information, please see the Maintenance chapter of the
ALLBASE/SQL Database Administration Guide. The MPE/iX part
number is 35216-90005.
- SYSTEM.IMAGEKEY and CATALOG.IMAGEKEY
The DBA can view all
TurboIMAGE keys associated with a database by examining
SYSTEM.IMAGEKEY. Other users can view the TurboIMAGE keys to
which they have access by examining CATALOG.IMAGEKEY. For
example, the DBA can issue:
isql => select * from system.imagekey;
--------------------+--------------------+--------------------+------+----
INDEXNAME |TABLENAME |OWNER |UNIQUE| ...
--------------------+--------------------+--------------------+------+----
ALBUMCODE_M1 |ALBUMS |MUSIC | 1| ...
COMPOSERNAME_M1 |COMPOSERS |MUSIC | 1| ...
SELECTIONNAME_A1 |SELECTIONS_A |MUSIC | 1| ...
ALBUMCODE_D1 |SELECTIONS |MUSIC | 0| ...
SELECTIONNAME_D2 |SELECTIONS |MUSIC | 0| ...
COMPOSERNAME_D3 |SELECTIONS |MUSIC | 0| ...
ALBUMCODE_D1 |LOG |MUSIC | 0| ...
SELECTIONNAME_D2 |LOG |MUSIC | 0| ...
The following columns exist in both SYSTEM.IMAGEKEY and
CATALOG.IMAGEKEY (PRIMARIES, SCCCOUNT, and DCCCOUNT are not
calculated or used in G.1):
- INDEXNAME
- Name of the TurboIMAGE item, plus a suffix.
The following suffixes are used by IMAGESQL:
- _M1 is used when registering manual master keys.
- _A1 is used when registering automatic master keys.
- _Dn is used when registering search keys on
detail data sets
(where n can be 1 to 16, depending on
the path number of keys.)
- TABLENAME
- Name of the
TurboIMAGE data set on which the key is defined.
- OWNER
-
Name of the TurboIMAGE database (or the owner name used during
the ATTACH) on which the key is defined.
- UNIQUE
- Uniqueness indicator:
- 0 if duplicates are allowed, i.e., the index is not unique.
- 1 if duplicates are not allowed, i.e., the key is unique.
Keys on master data sets (both automatic and
manual) are always
unique, except keys defined on P and Z
(decimal) data types. Search
items on detail data sets are always
non-unique.
- NUMC
- Number of columns in the index.
NUMC is always 1.
- COLNUMS
- A vector of 16 SYSTEM.COLUMN
entries, which identifies the
column numbers that make up the key. In ISQL,
each column number
is displayed as a field of 4 hexadecimal
digits.
- NDISTINCT
- Number of distinct key values.
- PRIMARIES
-
Number of primary slots used.
- SCCCOUNT
- Synonym
Chain Cluster Count, which is a measure of how well the
data is clustered on pages as the synonym
chain (also known as the
secondary chain) is traversed.
- DCCCOUNT
-
Detail Chain Cluster Count, which is a measure of how well the
data is
clustered on pages as the detail chain is
traversed.
- SYSTEM.TPINDEX and CATALOG.TPINDEX
The DBA can view
all third-party indexes (TPIs) associated with a database by
examining SYSTEM.TPINDEX. Other users can view the TPIs to which
they have access by examining CATALOG.TPINDEX. For example, the
DBA can issue:
isql => select * from system.tpindex;
--------------------+--------------------+--------------------+------+----
INDEXNAME |TABLENAME |OWNER |UNIQUE| ...
--------------------+--------------------+--------------------+------+----
ALBUMCODE_T1 |SELECTIONS |MUSIC | 0| ...
The following columns exist in both SYSTEM.TPINDEX and
CATALOG.TPINDEX (NPAGES, NLEVELS, NLEAVES, NDISTINCT, NFIRST,
NPERKEY, and CCOUNT are not calculated or used in G.1):
- INDEXNAME
- Name of the third-party index.
The following suffix is used by IMAGESQL when
registering third-party indexes:
- _Tn (Where n can be 1 to 400 depending on
the TPIs that exist on the database.)
- TABLENAME
- Name of the
data set on which the TPI is defined.
- OWNER
- Name of
the TurboIMAGE database (or the owner name used during
the ATTACH) on which the TPI is defined.
- UNIQUE
- Uniqueness indicator:
- 0 if duplicates are allowed, i.e., the index
is not unique.
- 1 if duplicates are not allowed, i.e., the
index is unique.
TPIs are always registered as non-unique.
- CLUSTER
- Clustering indicator:
- 0 if the index is not a clustering index.
- 1 if the index is a clustering index.
TPIs are always registered as non-clustering.
- NUMC
- Number of columns in the index.
- COLNUMS
- A
vector of 16 SYSTEM.COLUMN entries, which identifies the
column numbers that make up the index. In
ISQL, each column
number is displayed as a field of 4
hexadecimal digits.
- NPAGES
- Number of pages
containing the index.
- NLEVELS
- Number of levels in the
B-tree index.
- NLEAVES
- Number of leaf pages in the B-tree
index.
- NDISTINCT
- Number of distinct key values.
- NFIRST
-
Number of distinct first key values.
- NPERKEY
-
Number of pages per key.
- CCOUNT
- Cluster count, which
indicates how well the data of the index are
sorted:
- 0 before first UPDATE STATISTICS
statement is processed.
- n (efficiency of clustering).
Best clustering if n=NPAGES of table indexed;
Worst if n=NROWS of table indexed.
- CTIME
-
Time of creation: yyyymmddhhsstt.
- COLDIRS
-
A vector of 16 direction entries, which indicates the
direction of the
corresponding column in the index definition.
In ISQL, each column
number is displayed as a field of 4
hexadecimal digits.
- 5 Ascending.
- 6 Descending.
Security enhancements (IMAGE/SQL enhancements in g.1)
- ADD USER and UPDATE USER
- The ADD USER and UPDATE USER commands in the IMAGESQL utility
have been enhanced to allow the user class as a parameter. This
method allows any reserved word and/or special character
including a semicolon to be used as the TurboIMAGE password.
Password remains as an optional parameter for backward
compatibility.
New syntax:
AD[D] USER user[@account] WITH {CLASS=classnumber} [,MODE=modenum]
{PASS=password }
U[PDATE] USER user[@account] TO {CLASS=classnumber} |,...|
{PASS=password }
{MODE=modenum }
- DISPLAY USER
- The DISPLAY USER command has been enhanced to
- display the OWNER NAME as in the DISPLAY MAP command.
- allow a user who is
not the database creator to show user information without
displaying passwords. Passwords are displayed only for the
database creator (DBC).
Other enhancements (IMAGE/SQL enhancements in g.1)
- Predicate Level Locking
- To promote a high level of concurrency, predicate level locking
is used whenever possible. Only records containing qualified
criteria are locked.
- Packed Decimal
- IMAGE/SQL has been enhanced
to support IMAGE packed decimal from P16 to P28 data types.
- TABLE as Database and Data Set Name
- IMAGE/SQL has been
enhanced to allow TABLE as the database name for the SET TURBODB
command and as a data set name for the DISPLAY MAP command.
- String Concatenation
- String concatenation will be allowed by
using two vertical bars between strings.
- MULTI-CONNECT
- The
MULTI-CONNECT feature (available in ALLBASE/SQL) is now also
available in IMAGE/SQL. This feature enables you to
simultaneously connect to more than one database environment.
TurboIMAGE/XL enhancements
The MPE/iX 5.0 Express 3 release also includes significant enhancements to
TurboIMAGE/XL, a major component of IMAGE/SQL. Many of these enhancements were
requested by TurboIMAGE/XL users. The following enhancements are described in
this section:
Jumbo data sets
This enhancement allows IMAGE users to create
data sets greater than 4GBytes in size. A data set of this type,
called a Jumbo data set, can span more than one MPE file. The
naming convention uses POSIX extensions, e.g., a data set named
SALES03 with four multiple files will result in a total of five
files with the following filecodes and names:
SALES03 filecode -408
SALESO3.001 filecode -409
SALESO3.002 filecode -409
SALESO3.003 filecode -409
SALESO3.004 filecode -409
SALES03 is the Chunk Control
file. It has information about the other files, but no user data
of its own. The remaining files in the data set are called Chunk
Data files or chunks.
To specify a Jumbo data set, the
$CONTROL JUMBO statement must be included in the schema before
any data sets. Then any data set whose capacity is greater than
4GB will automatically become a Jumbo data set. If the $CONTROL
JUMBO command is not specified, an error is generated for data
sets exceeding the 4GB limit. The $CONTROL NOJUMBO command can
be used for turning off the Jumbo feature in DBSCHEMA.
The impact of this enhancement on various
utilities is described below:
- DBUTIL
- The
DBUTIL command allows detaching a given database from all DBEs to
which the database is attached. The SHOW command is used to
indicate the presence of Jumbo data sets in a database. The
CREATE command is used to create the required chunk control and
chunk data files. The MOVE command enables the user to move
either the chunk control file or a specific chunk data file to a
different device. Also, the new command is DETACH dbname ALL.
- DBSTORE
- DBSTORE will not store a Jumbo data set. The STORE
command must be used for this purpose. Also, POSIX names must be
specified, e.g., STORE ./SALES@.
- IMAGE Intrinsics
- There is no
impact on the externals of any IMAGE intrinsics other than new
error codes generated by the Jumbo data set enhancement. There
are two new DBINFO modes, 206 and 207. Mode 206 (short format)
gives the number of chunks in a data set. Mode 207 (long format)
identifies the size of each chunk in terms of IMAGE records in
addition to providing the number of chunks.
- DBINFO Buffer Layout
- The following is the DBINFO buffer layout for the new modes:
DBINFO mode 206
-------------------------------------------------------------
Element | Contents
-------------------------------------------------------------
1 | number of chunks in a Jumbo data set
-------------------------------------------------------------
Note: if the data set is not a Jumbo data set, the value is 0.
DBINFO mode 207
-------------------------------------------------------------
Element | Contents
-------------------------------------------------------------
1 | number of chunks in a Jumbo data set
2 | 0
3-4 | Size of chunk 1 (# entries, not # of blocks!)
5-6 | Size of chunk 2 (# entries, not # of blocks!)
7-8 | . . .
2n + 3 | Size of chunk n (# entries, not # of blocks!)
-------------------------------------------------------------
Total size: (n + 1) * 4 bytes.
If the data set is not a
Jumbo data set, then zeros will be returned in the first 4 bytes
of the buffer.
- Backward Compatibility
- Compatibility issues can
only occur when Jumbo data sets are created. When Jumbo data
sets exist, earlier versions of IMAGE will not be able to open
the database. (IMAGE version less than C.06.00) The IMAGE
database version, in the root file, for databases with Jumbo data sets will
be C03, whereas the version will be C02 without Jumbo data sets.
- Jumbo Data Sets and Dynamic Data Set Expansion
- At the present time,
Jumbo data sets do not work with Dynamic Data Set Expansion.
DBSCHEMA has a check to prevent this. The requirement for these
two to work together is recognized by HP.
- Limits
- The number of
chunks is currently limited to 99. However, users are not likely
to reach this limit unless chunks are very small. The maximum
block number will be the main limiting factor for the number of
chunks, as this limits the size of a Jumbo data set to
approximately 40GB, or about 10 chunks. Under normal
circumstances, each Chunk Data file, except the last one, will
be about 4GB.
Error message enhancements (TurboIMAGE/XL enhancements)
- Broken Chain Error
- The existing error message is:
BROKEN CHAIN - FORWARD AND BACKWARD POINTERS NOT CONSISTENT
The new error message is:
BROKEN FORWARD CHAIN: SET # PATH # ENTRY # #
BROKEN BACKWARD CHAIN: SET # PATH # ENTRY # #
Due to current
restrictions on DBERROR, the 32-bit entry number will be split
into two 16-bit numbers in the display. If the DBGET is first in
the chain, the entry number will be 0 0.
The status register
values are:
Status 16-bit Word 0 --> Condition Code
1 --> Set Number
2-3 --> Record #
4 --> 0 - Forward, 1 - Backward
5 --> Path #
6-7 --> Address of Base
8-9 --> Forward or Backward Record #
(Mode 5 - FWD, 6 - BWD)
- Bad Record Pointer Error
- This error is returned
under the following circumstances:
- DBGET mode 5 - when the user has just done a DBFIND and the
forward chain
pointer in the master record is invalid and outside of the
detail data sets capacity.
- DBGET mode 6 - when the user has just
done a DBFIND and the backward chain pointer in the master
record is invalid and outside of the detail data sets capacity.
The existing error message is:
INTERNAL TURBOIMAGE ERROR RETURNED ( -0307 )
The new error message is:
Bad record pointer for path 1 in set 3
The status register values are:
Status 16-bit Word 0 --> Condition Code
1 --> Path #
2-3 --> Record #
4 --> 0
5 --> Acc. Mode, PCODE
6-7 --> Address of Base
8 --> Mode of Intrinsic
9 --> Set #
- No Chain Head Error
- This
error is returned under the following circumstances:
- DBPUT into a detail with no corresponding manual master entry.
- CIUPDATE into a chain with no corresponding manual master
entry.
For DBPUT, the existing error message is:
No chain head (master entry) for path 1
The new message is:
No chain head (master entry) for path 1 in set 3
For DBUPDATE, the existing error message is:
DBUPDATE: No chain head (master entry) for path 1
The new message is:
DBUPDATE: No chain head (master entry) for path 1 in set 3.
The status register will have one change in each case:
For DBPUT,
Previously unused, status word 1 = Set number
For DBUPDATE,
Previously unused, status word 3 = Set number
- Lost Space in Dataset (A TurboIMAGE Abort)
- The existing error message is:
LOST FREE SPACE IN DATA SET #.
The error message is unchanged for master data sets:
LOST FREE SPACE IN DATA SET #.
But for detail data sets, the new error message is as follows:
LOST FREE SPACE IN SET #, ENTRY # ACTIVE.
Other enhancements (TurboIMAGE/XL enhancements)
- Enhanced Database Integrity
- The DBPUT and DBUPDATE commands check the integrity of
neighboring entries to detect possible data corruption before
inserting into a chain.
- DBUTIL
- DBUTIL is now a native-mode program.
- DBSCHEMA
- DBSCHEMA is now a native-mode program.
- DBRECOV
- DBRECOV has been enhanced to support significantly larger logging
cycles. Internal tables have been expanded to accommodate larger
log cycles.
Page last updated on July 28, 1995
|