Release Notes

The release notes for new versions or patches of the product will be included at the top in the order in which they were released.

Flex2SQL Classic Edition v17.1.9897.0

Flex2SQL Classic Edition v17.1.9897.0 was released on 2023-10-31.

New Features

  • PostgreSQL 16 Support: Starting with v17.1.9897.0, Flex2SQL now supports PostgreSQL 16.0. You’ll need an updated license to use PostgreSQL 16.0. Please contact our sales staff to make sure you have a license that supports PostgreSQL 16.0

  • PostgreSQL Stored Procedures: PostgreSQL recently added stored procedures. Before this feature, PostgreSQL only allowed stored functions. This build allows you to use the stored procedure-specific commands.

  • PostgreSQL Tablespaces and Index Tablespaces: PostgreSQL now supports using SET_DEFAULT_TABLESPACE and SET_DEFAULT_INDEX_TABLESPACE before a CONVERT_DAT_FILE command so that a table is converted using the specified tablespaces.

  • SQL_GET_DATA_CHUNK: All drivers now support chunked access.

  • Index Name Mapping: When a table is converted, there is a new checkbox that allows the indexes to be mapped based on their names rather than their structures. This makes the INT files simpler and allows modifications to an index structure without having to adjust the associated INT file (as long as the name doesn’t change). Note that this is only for migrating tables initially. There isn’t yet an option to change an existing table to use index name mapping.

  • Descending MySQL & MariaDB indexes: MySQL and MariaDB drivers now both support descending indexes as of MySQL 8 and MariaDB 10.11. Note that mixed direction indexes for reverse find operations such as Find LT/LE are slow in MySQL. This is an issue with their implementation. In MariaDB this same operation is very fast.

Bug Fixes

  • PROD-1268 MySQL driver was incorrectly assigning information_schema as the current database causing a problem with FHIGHEST_CHAR logic.

  • PROD-1249 The migration utility was not removing inverse key triggers when dropping a table.

  • PROD-1238 Some esql operations (such as udpate calls) in MySQL and MariaDB could cause ISAM find operations to generated a “Commands out of sync” error unless the resultset was consumed.

  • PROD-1237 The migration utility was limiting varchar(max) columns to 16384 chars in the INT file even though MAX is supported.

  • PROD-1235 The migration utility was not handling resizing of partial overlap columms correctly. This was both a driver bug and a UI bug.

  • PROD-1234 MySQL and MariaDB drivers were not returning the user count correctly.

  • PROD-1232 MySQL and MariaDB drivers for Linux did not let the nax number of open cursors allowed be decreased.

  • PROD-956 Oracle driver was incorrectly limiting CLOB columns to 65531 characters.

  • PROD-939 MySQL driver was causing a crash when retrieving the column length when there was no column to get the length of.

  • PROD-884 MySQL and MariaDB drivers were allow the insertion of a column in the middle of a table which is not allowed in our drivers. This now returns an error like it does for all our other drivers.

  • PROD-745 The installer was not creating a trial Linux license. This was intentional but is now allowed.

  • PROD-719 For PostgreSQL, when using the Studio, tables weren’t created in the correct database and schema.

  • PROD-713 For PostgreSQL, the schema was not being obeyed for inverse key functions.

  • PROD-712 Added a warning related to changing a recnum table to a rowid table since this can’t easily be undone.

  • PROD-623 In certain cases the migration utility was aborting the conversion of a DAT file if there were certain errors instead of continuing and just reporting the failures.

Flex2SQL Classic Edition v17.1.9784.0

Flex2SQL Classic Edition v17.1.9784.0 was released on 2023-07-06. This release includes our new MariaDB driver along with support for the latest version of Oracle Database.

New Features

  • MariaDB Driver: Starting in v17.1, MariaDB is now a separate driver with a separate license. In prior versions, MariaDB was included in the MySQL driver as it was mostly just a fork of MySQL. In recent versions of MariaDB, the feature set of MySQL and MariaDB have begun to diverge enough that a separate custom driver is now needed to provide the fastest and most up-to-date features that MariaDB now supports. If you were using our MySQL driver previously to connect to MariaDB, please contact our sales staff to have your MySQL transitioned to MariaDB. If the transition is just a straight horizontal move from a MySQL license to a MariaDB license, there is no cost.

  • MariaDB 11.0 Support: Starting with v17.1, Flex2SQL now supports MariaDB 11.0. You’ll need an updated license to use the new MariaDB driver with MariaDB v11.0. Please contact our sales staff to make sure you have a license that supports MariaDB 11.0.

  • Service Mode: New for v17.1 is a “service mode” for the driver that makes the driver easier to debug in Webapp/Thriftly setups. When using the driver within a Webapp or Thriftly environment, the driver will now automatically block anything that would generate a UI and will instead add an entry to the Windows Event Log detailing what occurred. This can be very useful when debugging login issues that would previously hang the application. Instead of a hidden login UI, the driver will now log an event with details of what happened. Any driver generated error messages also use this new event logging mechanism. If you use the Flex2SQL deployment tools, this step is done automatically. For more information, click here.

  • Oracle 23c Support: Starting with v17.1, Flex2SQL now supports Oracle 23c. You’ll need an updated license to use Oracle 23c. Please contact our sales staff to make sure you have a license that supports Oracle 23c.

Bug Fixes

  • PROD-1198 Session counting was slow if processes were started in quick succession. Also, session count could sometimes be off for unknown reasons. This section of the driver has been rewritten using a more reliable mechanism.

  • PROD-1000 MySQL driver now reports index that is non-unique since this can cause speed issues.

  • PROD-1178 MariaDB reports an error when trying to delete a column belonging to a primary key definition. Now the primary key is removed as well.

  • PROD-1101 DF_FILE_LOGIN returning incorrect value. Fixed.

  • PROD-1153 Migration Utility crashes when editing certain overlap columns. Fixed.

Flex2SQL Classic Edition v17.0.9622.0

Flex2SQL Classic Edition v17.0.9622.0 was released on 2023-02-06.

New Features

  • MSOLEDBSQL v19.x Support: This build supports the latest v19.x Microsoft OLE DB Driver for SQL Server. This new version of MSOLEDBSQL has some new defaults that are meant to be more secure, but by default will break the use with your application. For this release (and at least the next the next release) of Flex2SQL, the driver defaults to make things work the way they have in the past. In future version we will be changing to a more secure default that will require action on your part to either use the more secure connection settings or to set them a less secure default. Please keep up with our blog<>` to learn more.

Bug Fixes

  • PROD-940 DF_FILE_PRESERVE_RECNUM had a bug preventing it’s use. This isn’t a feature that shouldn’t be used anymore though. Will be removed from future versions of the product.

Flex2SQL Classic Edition v17.0.9580.0

Flex2SQL Classic Edition v17.0.9580.0 was released on 2022-12-14.

New Features

  • SQL Server 2022 Support: This build supports Microsoft SQL Server 2022 if you have an updated license. Licenses issued before 2022-12-14 cannot connect to SQL Server 2022.

  • PostgreSQL 15.x Support: This build supports PostgreSQL v15.1 if you have an updated license. Licenses issued before 2022-12-14 cannot connect to PostgreSQL v15.x.

  • New Linux Builds: This version also includes new builds of the Linux drivers that contain all pertinent bug fixes.

  • FLEX-485 MySQL Expression Default Support: The MySQL driver now supports expression based default values when using MySQL v8.0.13+ or MariaDB v10.10.2. Note that in older versions of either product, attempting to use an expression will result in an error.

Bug Fixes

  • FLEX-88 Driver crash occurs when doing FIND GE on a single record table with DF_FILE_STATIC mode.

  • FLEX-109 MySQL driver would report an error when mixing embedded SQL calls and Stored Function calls.

  • FLEX-150 In MS SQL when converting a table containing DF_HIGH dates, the driver crashes. The issue is that DataFlex limits dates to 2500-12-31 and dates higher than that work in Julian form, but not date form. Now we detect dates higher than 2500-12-31 (normally it ends up being dates of 2737-11-06 or Julian 999999) and set them to 2500-12-31 (Julian 913490).

  • FLEX-275 MySQL driver was not saving LOB values when inside a transaction.

  • FLEX-390 In Oracle driver, when an expired license is used, the driver reports that it is the wrong database version which is the incorrect error message.

  • FLEX-447 In Oracle driver, when a primary key column with a varchar2 inverse key column defined is resized, the inverse key column isn’t updated accordingly.

  • FLEX-452 PostgreSQL driver returned blank string for DF_FILE_TABLESPACE_NAME and DF_FILE_IDEXTABLESPACE_NAME when the table and index were created in the pg_default tablespace instead of return pg_default.

  • FLEX-463 When using the driver from the DataFlex Studio, an expired license is not reported making it difficult to debug why the driver isn’t working.

  • FLEX-464 In Oracle driver you could sometimes get a “Bad Parameter - This is not a LOB column” error. The native field number was expected by CALL_DRIVER but our framework was passing the DataFlex field number.

  • FLEX-468 LOB column inserts truncated in some cases. For Oracle, the bug was in and for MS SQL there was a driver issue.

  • FLEX-470 Warning message in trace file about odd number of digits in packed decimal columns doesn’t really matter anymore. Removed.

Flex2SQL Classic Edition v17.0.9462.0

Flex2SQL Classic Edition v17.0.9462.0 was released on 2022-08-18.

Bug Fixes

  • FLEX-267 SQL_GET_FUNCTION_PARAMETER was causing a “bad parameter” error when used with (the console mode

Flex2SQL Classic Edition v17.0.9455.0

Flex2SQL Classic Edition v 17.0.9455.0 was released on 2022-08-10. Classic edition is meant to be used with DataFlex versions 19.1 and lower.

Bug Fixes

  • FLEX-422 Updated the MySQL client libraries to a newer version that works on latest MySQL and MariaDB.

  • FLEX-429 Updated the error message related to the client library version needed for PostgreSQL on Linux to be more clear.

  • FLEX-267 Updated with SQL_GET_FUNCTION_PARAMETER fix.

  • FLEX-437 Updated internal max versions used on evaluation licenses.

  • FLEX-339 Made SQL_CHECK_TABLE smarter about what happens when there is no DB selected and a rights issue.

Flex2SQL Classic Edition v17.0.9442.0

Flex2SQL Classic Edition v 17.0.9442.0 was released on 2022-07-28. Classic edition is meant to be used with DataFlex versions 19.1 and lower.

New Features

This version now includes v17 builds of all linux drivers. Note that for MySQL and PostgreSQL new client libraries are required to use the v17 drivers. The Flex2SQL For MySQL Linux driver now requires a minimum of, although we advise the use of The Flex2SQL for PostgreSQL Linux driver now requires a minimum of libpq 5.12 (note that the versioning of libpq on Windows and Linux are different).


For the Flex2SQL Classic Edition for PostgreSQL driver (both Linux and Windows versions), the client shipped with the v12.2 server (which has an internal version number of v12.0.2) should be used so that scram-sha-256 hashing can be used for logins. This new hashing is used in recent version of PostgreSQL as the default instead of the older MD5 hashing.

Bug Fixes

  • FLEX-428 - MDS Support Utility doesn’t recognize DF 2022.

  • FLEX-420 - Oracle driver on Windows DF_RAW columns returning corrupt data.

  • FLEX-410 - DF_BINARY columns return bad data in Linux builds on Red Hat due to a compiler bug.

  • FLEX-267 - SQL_GET_FUNCTION_PARAMETER didn’t work with the PostgreSQL driver. Fixed.

  • FLEX-337 - When compiling a webapp, didn’t fix all the missing cli.pkg defines.

  • FLEX-273 - In PostgreSQL restructuring, when naming convention is changed and the name of a column has changed, a crash would occur.

  • FLEX-266 - In PostgreSQL, when creating a new record inside an explicit transaction, LOB values were not being properly saved.

  • FLEX-405 - In Oracle, when doing a certain mathematic select against v$parameter, the driver would crash.

  • FLEX-285 - Default value in Migration utility not saved properly.

  • A more recent set of PostgreSQL client DLLs is now distributed againt all tools.

  • New delay load feature now applies to the license as well (should have originally)

Flex2SQL Classic Edition v17.0.9302.0

Flex2SQL Classic Edition was released on 2022-04-07. Classic edition is meant to be used with DataFlex versions 19.1 and lower.

Although it will work with DF 2021, this is not a supported configuration. We have made changes to to make it more compatible with DataFlex versions >= 19.0. When using v17 Classic Edition with DF2021, there is no unicode support and the ability to have custom OEM to ANSI translation is removed. Default translation based on code page appears to work just fine within the DF runtime. Any characters that don’t fall within the code page are replaced by the runtime with question marks.

When using Classic Edition with prior versions of DataFlex, everything works as it did in prior versions related to OEM to ANSI translation.

Additionally, all of the LOB commands now have an “_UC” version that is meant to be used with uChar[] datatypes instead of strings. The syntax of these commands is identical except that they take and return uChar[]’s instead of strings. This works in version of DataFlex >= 11.0.

Note that in DF 2021, you MUST use the “_UC” version of LOB commands, whereas in prior versions of DataFlex the use of these new commands is optional. We advise using them and removing all “chunking” logic and use of set_argument_size related to LOBs. This reduces the risk of memory leaks/memory corruption and simplifies code.

New Features

  1. PostgreSQL v13 Support: Flex2SQL v17 now fully supports PostgreSQL v13.2. A v17 license is required to use PostgreSQL v13.

  2. New “_UC” based LOB commands:All of the LOB commands now have an “_UC” version that is meant to be used with uChar[] data types instead of strings. The syntax of these commands is identical except that they take and return uChar[]’s instead of strings. This works in version of DataFlex >= 11.0. Note that in DF 2021, you MUST use the “_UC” version of LOB commands, whereas in prior versions of DataFlex the use of these new commands is optional. We advise using them and removing all “chunking” logic and use of set_argument_size related to LOBs. This reduces the risk of memory leaks/memory corruption and simplifies code.

  3. CLI Detection: will now detect if CLI.pkg has been included which can cause problems with our driver. If this is detected, a compiler error is thrown.

  4. Removed “legacy” syntax (no more compiler warnings!): There is now very limited need for compiler warning logic as old coding techniques such as the use of EQ, NE, GT, GE, LE have been updated, and limited use of types is only there to support interfacing with versions of DataFlex that can’t use structures.

Bug Fixes

  • FLEX-114: DF_FIELD_TIME Not updating first record.

  • FLEX-113: cDbCJGrid shows double rows when using index with first segment of type Datetime

  • FLEX-112: eSQL columns of type BIT don’t return proper boolean value

  • FLEX-111: “Invalid Object Name” error after reconnecting to SQL server if a sysadmin account is used that has a different default database

  • FLEX-108: Installer not registering COM control properly after Windows update

  • FLEX-100: For PostgreSQL driver, expressions are not supported for default values in inverse key columns or partial overlap columns (this is still limited, but works better now)

  • FLEX-98: For Oracle driver, UPPER and DESC segments of primary key not used if primary key already used these segments in the inverse key

  • FLEX-89: For MS SQL driver, default dates of 1899-12-30 cause problems (this is the zero value for an OADate).

  • FLEX-88: For PostgreSQL driver, static single row tables caused a crash due to an internal pointer allocation bug

  • FLEX-85: For PostgreSQL driver, evaluation obfuscation could generate invalid data

  • FLEX-82: Migration utility not resetting fractional column definition when changing data type from decimal to integer

  • FLEX-77: For MySQL/MariaDB driver, SQL_GET_NUM_ROWS after update/insert crashes application

  • FLEX-75: For MS SQL driver, migration utility improperly calls “DROP TABLE” without passing a table name when a table is being replaced and there is no filelist entry beforehand for the original table.

Commands/Attributes Removed

All references to DB2 were removed along with all support for TD cache files. Old syntax that was replaced in prior versions that was marked as deprecated in version 16 was removed from version 17.


Replaced by




replaced many versions ago



replaced many versions ago



replaced many versions ago





No longer supported.









This command was mostly for DB2. There is no direct replacement.





This feature is no longer supported. There is no direct replacement.











Replaced by the newer procedure calling mechanism. Can use SQL_FETCH_NEXT_ROW if it’s a resultset





Now deprecated. Call was rarely used and has some issues with cursors associated with it.







Use datetimes instead which don’t have string formatting issues



No longer supported







There are newer ways of handling this that are supported (such as the run as command) that should be used in place of this.



This can be done via an “ALTER SESSION SET nls_timestamp_format” call instead.



All DB2 references removed



All DB2 references removed







TD Support has been removed



TD Support has been removed



Older LOB interface removed. Use SQL_ADD_LOB_CHUNK_UC



Older LOB interface removed. Use SQL_GET_LOB_LENGTH_UC



Older LOB interface removed. Use SQL_GET_LOB_UC



Older LOB interface removed. Use SQL_SET_LOB_UC



Older LOB interface removed. No replacement for this command.



Older LOB interface removed. Use SQL_SET_LOB_NULL_UC



Older LOB interface removed. No replacement for this command.



Older LOB interface removed. No replacement for this command.



Reconnect is handled by the driver internally.







No replacement for this command.



No replacement for this command.



Use ENABLE_SCRIPTING and built in Structure_Start command.



Use DISABLE_SCRIPTION and built in Structure_End command.

To take advantage of these new Flex2SQL features and bug fixes, download Flex2SQL v17 Classic Edition and then install the application using your typical upgrade process. If you need help upgrading or implementing a feature, refer to the product documentation or contact us at