Communicator e3000 MPE/iX Release 7.0 Express 1 (Software Release C.70.01) (30216-90328)

134 Chapter6
Technical Articles
Business BASIC and the TurboIMAGE/iX Limits Increase
Business BASIC and the TurboIMAGE/iX Limits Increase
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$