TurboIMAGE/XL Database Management System Reference Manual (30391-90012)
Table Of Contents
- 1 Introduction
- 2 Database Structure and Protection
- 3 Defining a Database
- 4 Using the Database
- 5 TurboIMAGE/XL Library Procedures
- Using TurboIMAGE/XL Intrinsics
- DBBEGIN
- DBCLOSE
- DBCONTROL
- DBDELETE
- DBEND
- DBERROR
- DBEXPLAIN
- DBFIND
- DBGET
- DBINFO
- INTRINSIC NUMBER 402
- Syntax
- Parameters
- Discussion
- Mode 101: Item Number
- Mode 102: Item Name
- Mode 103: Items in Database
- Mode 104: Items in Data Set
- Mode 113: BTREEMODE1 and Wildcard Character
- Mode 201: Set Number
- Mode 202: Set Name
- Mode 203: Sets in Database
- Mode 204: Sets with Item
- Mode 205: Set Capacity
- Mode 206: Number of Data Set Chunks
- Mode 207: Size of Data Set Chunks
- Mode 208: Primary and Actual Capacity
- Mode 209: B-Tree Attachment
- Mode 301: Paths
- Mode 302: Key or Search Item
- Mode 401: Logging
- Mode 402: ILR
- Mode 403: Dynamic Roll-Back
- Mode 404: Logging Subsystem Information
- Mode 406: Database Information
- Mode 501: Subsystem Access
- Mode 502: Critical Item Update
- Modes 8nn: Third-Party Indexing
- Mode 901: Language
- DBLOCK
- DBMEMO
- DBOPEN
- DBPUT
- DBUNLOCK
- DBUPDATE
- DBXBEGIN
- DBXEND
- DBXUNDO
- 6 Host Language Access
- Model Program
- ORDERS Database Model Program
- Main Body of Program
- Opening the Database
- Retrieving All the Records on a Chain (with Item Level Locking)
- Retrieving a Data Entry Using a Record Number
- Retrieving Master Data Using a Key Value
- Retrieving Data Serially (with Set Level Locking)
- Adding an Entry
- Updating an Entry
- Deleting an Entry
- Rewinding a Data Set
- Obtaining Database Information
- Obtaining Error Messages and Explanations
- Closing the Database
- C
- COBOL II
- Defining Data Types, Variables, and Intrinsics
- Main Body of Program
- Opening the Database
- Retrieving All the Records on a Chain (with Item Level Locking)
- Retrieving a Data Entry Using a Record Number
- Retrieving Master Data Using a Key Value
- Retrieving Data Serially (with Set Level Locking)
- Adding an Entry
- Updating an Entry
- Deleting an Entry
- Rewinding a Data Set
- Obtaining Database Information
- Obtaining Error Messages and Explanations
- Closing the Database
- FORTRAN 77
- Pascal
- RPG
- 7 Logging and Recovery
- Database Utilities Used in Logging and Recovery
- Recovery Options
- Logical Transactions
- Dynamic Roll-Back Recovery
- Intrinsic Level Recovery
- Logging Preparation
- Step 1--Checking MPE/iX Logging Configuration
- Step 2--Acquiring Logging Capability
- Step 3--Logging to Tape or Disk
- Step 4--Building a Log File for Logging to Disk
- Step 5--Creating the Log Identifier
- Step 6--Setting the Log Identifier
- Step 7--Setting Flags for the Database Backup Copy
- Step 8--Making a Database Backup Copy
- TurboSTORE/iX 7x24 True-Online Backup
- Logging Status
- Logging Maintenance
- Roll-Forward Recovery
- Roll-Back Recovery
- DBRECOV Commands Used with Roll-Forward and Roll-Back Recovery
- Recovery Tables
- Post-Recovery Options
- The Mirror Database
- 8 Using the Database Utilities
- Restructuring the Database with TurboIMAGE/XL Utilities
- Summary of Utility Routines
- Utility Program Operation
- DBLOAD
- DBRECOV
- >CONTROL
- >EXIT
- >FILE
- >RECOVER
- >ROLLBACK
- >RUN
- DBRESTOR
- DBSTORE
- DBUNLOAD
- DBUTIL
- >>ACTIVATE
- >>ADDINDEX
- >>CREATE
- >>DEACTIVATE
- >>DETACH
- >>DISABLE
- >>DROPINDEX
- >>ENABLE
- >>ERASE
- >>EXIT
- >>HELP
- >>MOVE
- >>PURGE
- >>REBUILDINDEX
- >>REDO
- >>RELEASE
- >>SECURE
- >>SET
- >>SHOW
- Syntax
- Parameters
- Example (Show Users)
- Example Discussion
- Example (Show All)
- Example Discussion
- Example (Show Capacity)
- Format of Show Device List
- Example (Show Device)
- Format of Show Indices
- Example (Show Indices)
- Format of Show Locks List
- Example 1 (Show Locks)
- Example 1 Discussion
- Example 2 (Show Locks)
- Example 2 Discussion
- >>VERIFY
- 9 Using a Remote Database
- 10 Internal Structures and Techniques
- 11 B-Tree Indices
- A Error Messages
- B Results of Multiple Access
- C Database Design Considerations
- D Multiple Calls to DBLOCK
- E TurboIMAGE/XL Log Record Formats
- F MPE/iX Log Record Formats
- G Recovery and Logging Quick Reference
- H TurboIMAGE/XL versus TurboIMAGE/V

Chapter 4 113
Using the Database
Updating Data
DBCONTROL in mode 6 disables the option. Using DBCONTROL modes 5 and 6 does not alter
the permanent setting set with the DBUTIL >>SET command. The database must be opened
in access mode 1, 3, or 4; and your user class must have write access at the set level, or
both read access at the set level and write access at the item level.
Programmers should review the design of any of their applications that are used to update
the values of data items to ensure that the data will be updated as expected. Applications
that open the database in access mode 2 do not need to be modified, because only access
modes 1, 3, and 4 can be used with CIUPDATE. Applications that rely on TurboIMAGE/XL
to restrict update of detail data set search and sort items can continue to do so as long as the
database access mode is not 1, 3, or 4, or the
CIUPDATE
option is set as follows:
• DISALLOWED, or
• ALLOWED and the process does not call
DBCONTROL
in mode 5.
Otherwise, these applications need to be modified to call the DBINFO procedure to check the
CIUPDATE flags for the database and the current process, and (if need be) to disable
CIUPDATE for the current DBOPEN via the DBCONTROL procedure in mode 6. Another method
of restricting access to search and sort items is by granting read-only access at the data set
level and limiting write access at the data item level.
Applications that allow the sort item for the current chain to be updated must allow the
current entry to be moved within the chain. An entry which is moved can be encountered
twice within one chained read.
To update a detail data set search or sort item, the following sequence of operations is
recommended for your programs:
1. Call DBOPEN in access mode 1, 3, or 4.
2. Call DBLOCK to lock all data which must not be changed by other processes.
3. If this is a logical transaction, you need to declare the beginning of modifications by
calling DBBEGIN or, if you are using dynamic roll-back, DBXBEGIN (see the discussion of
logical transactions later in this chapter).
4. Read data using DBFIND and DBGET to determine what needs to be modified.
5. Call DBINFO to check the specific CIUPDATE option setting for the database and the
setting for the current DBOPEN.
6. If the CIUPDATE setting is ON and has not been disabled by a DBCONTROL mode 6, go to
the next step. If the setting is ALLOWED, call DBCONTROL mode 5 to enable the option.
Note that if the CIUPDATE setting is ON and the option has not been disabled, you can
still call a DBCONTROL mode 5 successfully.
7. If the CIUPDATE option is permitted, call DBUPDATE.
8. If the CIUPDATE option is not permitted, call DBDELETE and DBPUT.
9. Check the status code.
10.If the status code is not 0, call DBERROR and take appropriate action. For example, if
this is a dynamic transaction, you must call DBXUNDO to roll back the transaction.