by Sue Meloy
Enterprise Support Services Organization
As of MPE/iX 6.5 Express 2, certain TurboIMAGE/iX limits have been increased.
See the article "Large Size Datasets in TurboIMAGE/iX" and
the article "Limits in TurboIMAGE/iX" for more
details on the changes and their impact on user programs.
The Business BASIC runtime library contains calls using some
of the DBINFO modes affected by these changes.
Patch BBRLXA5, which is included in the PowerPatch for MPE/iX
6.5 Express 2, contains expanded buffers to handle the additional
information potentially returned by its internal calls to DBINFO.
However, if users call the DBINFO intrinsic directly or use
the Business BASIC DBINFO statement, they may need to expand their
own buffers if the DBINFO could refer to a database that uses the new limits.
As described in the TurboIMAGE/iX article, a flag can be enabled
to tell DBINFO to report an error if the buffer returned by DBINFO
exceeds the old limit.
DBCONTROL with mode 20 can be used to indicate that the application
is aware of the increased buffer sizes for the database, and so
the size check should be skipped.
The user is responsible for calling the DBCONTROL intrinsic,
if appropriate; Business BASIC will not do so automatically.
For example, if the user has determined that all DBINFO references
to the database MYDB have appropriately sized buffers, the following
code will notify TurboIMAGE/iX of that fact:
10 GLOBAL INTRINSIC Dbcontrol
20 SHORT INTEGER Status(1:10), Mode
30 DIM Qualifier$[1]
40 DIM Info$[386] ! (64 paths*3 words +1)*2, new max for mode 301
50 Dbname$=" MYDB"
60 DBOPEN Dbname$
70 Mode=20
80 CALL Dbcontrol(Dbname$, Qualifier$, Mode, Status(*))
...
100 DBINFO Dbname$,DATASET=1,MODE=301,RETURN=Info$
...