JIT Binding
Indicates if JIT binding is on or off for the table.
Supported By
The DataFlex SQL Drivers (SQL Server, DB2, and ODBC), revision 5 and higher.
Value
- Yes
- No
Associated Attribute
Remarks
To minimize network traffic, not all columns of a table will be fetched from the back end. Columns that have a large native size (default > 10 megabytes) will not be fetched along with the rest of the record when finding. The value of the column will be fetched into the record buffer when it is accessed for the first time. A column is accessed when a reference to File.Fieldname is made in the program.
The JIT binding keyword switches the behavior on or off at the table level. By default, JIT binding is on.
JIT binding can be configured on two levels:
- Driver Level: One can set the threshold that makes a column eligible for JIT binding (default 10 Mb) using the JIT_Treshold driver configuration keyword.
- Table Level: JIT binding can be switched on or off using the JIT_Binding intermediate file keyword.
Special Note
When JIT binding is used for a column, it means you can't rely on the data being in the record buffer as long as the column is not accessed. This may, in some situations, have unintended side effects.
A situation where this might happen is when making a duplicate record based on an existing record (cloning records). One method to do this is by setting the file status of the existing record to inactive or by moving zero to recnum.
If the table has a JIT column and this column is not in the record buffer, the contents of the JIT column will not be written to the cloned record and thus will not be duplicated.
If this record cloning method is used for a table, and the table has JIT columns, JIT binding should be turned off.