LogicalOrder Column Transforms

Bi-directional text in languages such as Hebrew and Arabic may be represented within the computer in one of two ways: logical order or visual order.

ODBC applications expect that Relativity will supply the text in logical order, so they can automatically convert it to visual order when it comes time to display the text. Relativity also treats text from application files as being in logical order, and performs no transformations on it when returning it to the application program. It is possible, however, that the COBOL application received the text in visual order from the terminal, performed no translations on it, and stored the text in the application's file still in visual order. When the ODBC application attempts to convert the text that is already in visual order to visual order again, the resulting text is not displayed properly. Although an ODBC translation DLL can be employed to translate the visual order to logical order, any sorting of the data via an index or an ORDER BY operation will have already been performed before the translation DLL is called; thus, the order of the data will not be correct.

Relativity offers the LogicalOrder column transform as an alternative to the ODBC translation DLL. The LogicalOrder column transform is used to convert visual order text to logical order text before returning it to the ODBC application. Likewise, logical order text that is written into a column by the ODBC application will be converted back to visual order before storage into the COBOL data file, so the COBOL application can use it.

Notes

  • Data that is stored in visual order does not sort properly, and Relativity will not build an index on a column with a LogicalOrder transform, even though the underlying data file has a key on the data item. However, as the data that the column returns is now in logical order, performing an ORDER BY operation on the column will cause the information to sort properly.
  • If the LogicalOrder column transform is in use, a translation DLL should not be used.