public interface BidiStringType
The client Bidi format is usually different from the host Bidi format. For example, Bidi format of MS-Windows applications is typically Logical LTR, and Bidi format of System i screen applications is typically Visual LTR. Therefore the data exchange between the host and the client may need Bidi layout transformation. The client Bidi format for this transformation is defined by "bidi string type" property, while the host Bidi format is taken according to the user profile CCSID (aka host CCSID). Each CCSID has a default string type, as defined by the CDRA (Character Data Representation Architecture), which defines a set of Bidi flags. This string type is used as the host Bidi format.
By default, the value of the "bidi string type" property is 5 (Logical LTR).
The value of the the host CCSID is received from the host, and it can be different for data sent from the host to the client (such as results of SELECT queries), and for data sent from the client to the host (such as field content of data manipulation statements, such as INSERT or UPDATE). For the former, the host CCSID is used. For the latter, it is defined using property "package ccsid".
Note that the default value for the property is 13488 (UCS-2), and Bidi format associated with the CCSID is 10 (Logical Contextual). Therefore, by default, the data sent from a client to a host is converted into Logical Contextual first, and then converted into Bidi format of the host database (typically Visual LTR) by a process running on the host side (receiving job). As result, Arabic/Hebrew text mixed with numerals might be reordered incorrectly (round-trip problem). To prevent this problem, it is recommended to set "package ccsid" to the value matching the host CCSID.
The special value "system" for the "package ccsid" property forces the JDBC driver to use value matching the host CCSID. This CCSID may be different for different accounts, but, by default, it matches the host database CCSID; therefore, in most of cases, it is recommended for usage with Bidi systems. However, it is mandatory to use a Unicode CCSID, for example 1200 (UTF-16) or 13488 (UCS-2), for data manipulation statements with multilingual field content.
For meta-data (names of tables, columns etc.) and method setString() of classes CallableStatement and PreparedStatement, "package ccsid" is not used as a mediator, and sending data is converted directly to host database CCSID, or CCSID specified for the column.
Bidi layout transformation of data manipulation statements such as INSERT or UPDATE is not supported when either "package ccsid" and host CCSID are Logical, or when host CCSID is Logical RTL (62224 for Arabic and 62235 for Hebrew). For these cases, consider usage of method setString() of classes CallableStatement and PreparedStatement, or method updateString() of class ResultSet.
Bidi layout transformation of meta-data (such as tables, columns and stored procedures names) depends on property "bidi implicit reordering". If it is set to true, it is reordered according to current setting of "bidi string type". Otherwise no reordering is occurred. In current release, this feature is supported for Visual LTR CCSIDs (420 for Arabic and 424 for Hebrew) only.
Note that "LTR" means left-to-right, "RTL" means right-to-left, and "Implicit" is an alias for "Logical".
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT
The default string type for Bidi data (Logical LTR).
|
static int |
NONE
String type used when an EBCDIC/Unicode conversion is desired, but without swapping, shaping, or transformation.
|
static int |
ST10
String Type 10
Type of text: Implicit
Orientation: Contextual LTR
Symmetric swapping: Yes
Numeral shape: Nominal
Text shapes: Nominal
|
static int |
ST11
String Type 11
Type of text: Implicit
Orientation: Contextual RTL
Symmetric swapping: Yes
Numeral shape: Nominal
Text shapes: Nominal
|
static int |
ST4
String Type 4
Type of text: Visual
Orientation: LTR
Symmetric swapping: No
Numeral shape: Nominal
Text shapes: Shaped
|
static int |
ST5
String Type 5
Type of text: Implicit
Orientation: LTR
Symmetric swapping: Yes
Numeral shape: Nominal
Text shapes: Nominal
|
static int |
ST6
String Type 6
Type of text: Implicit
Orientation: RTL
Symmetric swapping: Yes
Numeral shape: Nominal
Text shapes: Nominal
|
static int |
ST7
String Type 7
Type of text: Visual
Orientation: Contextual LTR
Symmetric swapping: No
Numeral shape: Nominal
Text shapes: Nominal
|
static int |
ST8
String Type 8
Type of text: Visual
Orientation: RTL
Symmetric swapping: No
Numeral shape: Nominal
Text shapes: Shaped
|
static int |
ST9
String Type 9
Type of text: Visual
Orientation: RTL
Symmetric swapping: Yes
Numeral shape: Nominal
Text shapes: Shaped
|
static final int DEFAULT
static final int NONE
static final int ST4
static final int ST5
static final int ST6
static final int ST7
static final int ST8
static final int ST9
static final int ST10
static final int ST11