Eloquence B.07.10 contact contact

Database Intrinsics

  The Eloquence TurboIMAGE compatibility extension provides all TurboIMAGE intrinsics. Due to differences in the underlying implementation some details may differ from TurboIMAGE. For each TurboIMAGE intrinsic call a short description is provided along with notes which describe possible Eloquence specific behavior or limitations.


Additional database documentation

Related documentation

General Remarks

This section provides some general overview which applies to all database calls.
  1. The Eloquence database implements transaction nesting and transaction isolation. So nesting of dynamic transactions is allowed and modified information is not exposed to concurrent sessions until the transaction is committed. A concurrent read access outside the transaction context returns the unmodified information.

  2. Database "intrinsics" might return different status values in case of "unusual" situations. While all common status values are converted to TurboIMAGE conventions, Eloquence status values differ from TurboIMAGE and not all can be translated. If you discover a problem please send us a message so we can investigate the situation and improve the status translation.

  3. In case of a status error, status elements 7 .. 10 are different from TurboIMAGE. They include additional Eloquence specific information.

    In case a nonzero status is returned the status array is used as below:

    Element Contents
    1 IMAGE status code
    2 - 4 unchanged
    5 zero
    6 IMAGE intrinsic ID
    7 Native Eloquence status code
    8 Native Eloquence extended status code
    9 IMAGE mode
    10 Encoded native Eloquence call ID and mode
    (Format: 6 bit ID, 10 bit mode)

  4. In addition to ' ' (space) and ';' (semicolon) a NUL character is also accepted as a delimiter/terminating character.

  5. Database, data set and item names are not case sensitive.

  6. The Eloquence database procedures may provide additional modes and functionality (eg. Index access, locking modes). Additional Eloquence functionality has been made available in a non-conflicting manner so aware applications can make use of additional functionality.

  7. Eloquence does not enforce locking. It's optional and there are no special requirements depending on data set types or transactions. The Eloquence database handles concurrency internally through transactions. So you are free to use locking according to the requirement of your application. Instead of checking if a write access is covered by a lock Eloquence checks if a concurrent lock has been granted. In this case a write attempt will return with a database status -12.

    The DBLOCK-COMPAT database property may be used to modify the locking policy for a database in cases where mandatory DBLOCKs are required for close TurboIMAGE compatibility.

  8. Eloquence does not use hashing. So there are no secondaries in master sets.

  9. The Eloquence schema processor is able to process the TurboIMAGE schema syntax (you need to specify the -T commandline option).

    The item types J and R are not supported natively and are only visible to the TurboIMAGE emulation.

    • The 'R' item type is supported in TurboIMAGE compatibility only, values are expected to be encoded in IEEE format. Native Eloquence considers this an 'E' type.
    • The 'J' item type is supported in TurboIMAGE compatibility only. Native Eloquence considers this an 'I' type.

  10. The Eloquence security system differs from the traditional IMAGE model. A user name and password is required to connect to a database. Unless specified a default user ("public") is used.
    A user name and password can be specified either by using the Eloquence specific DBLOGON call or providing a user name and password with DBOPEN.

  11. Item level security is not implemented. All items are considered writable.

    Eloquence B.08.10 and newer supports "Enhanced Item Level Security" for protecting or masking the contents of sensitive items depending on database user privileges.

  12. Data set and item numbers passed as a qualifier conflict with single character data set or item names on little endian machines (Intel) when a NUL character is used as a separator. When specifying single character data set or item name you must use a separator other than a NUL character.

  13. Static transactions are currently not supported with Eloquence and DBBEGIN, DBEND and DBMEMO have no effect by default. Eloquence relies on dynamic transactions internally.

    The HP3K_API_COMPAT database property may be used to enable support for the DBBEGIN, DBEND and DBMEMO calls in conjunction with forward logging / database auditing.

  Privacy | Webmaster | Terms of use | Impressum Revision:  2011-03-09  
  Copyright © 2006-2011 Marxmeier Software AG