DataFlex SQL Drivers from Data Access Worldwide Version: 6.3.0.22 Release Date: May 5, 2021 File: DataFlex SQL Drivers v.6.3.0.22.zip Introduction =============== DataFlex SQL Drivers provide DataFlex Studio, Windows and Web Clients and WebApp Server with drivers that enable access to Microsoft SQL Server, IBM DB2 and ODBC databases, like MySQL, and other data sources. Use of DataFlex SQL Drivers is governed by the license agreement included with the Software Product with which the DataFlex SQL Drivers are installed. For licensing information, please contact Data Access Worldwide at sales@DataAccess.com or your Data Access Worldwide regional office or Channel Partner. This ZIP file updates to the version shown above development environments that already have a previous version of the DataFlex SQL Drivers installed. It will also install drivers where no DataFlex SQL Drivers has been previously installed. Do you need this driver version? ================================== DataFlex installs DataFlex SQL Drivers as part of its installation, so you may already have the version of the drivers that you need. Please, check the list below to see if you need to update your drivers: DataFlex 2019 - 19.1 (October 2019 release) SQL Connectivity Kits version 6.3.0.15 DataFlex 2019 - 19.1 (April 2019 release) SQL Connectivity Kits version 6.3.0.13 DataFlex 2017 - 19.0 (December 2017 release) SQL Connectivity Kits version 6.2.0.42 DataFlex 2017 - 19.0 (August 2017 release) SQL Connectivity Kits version 6.2.0.40 Because they include bug fixes and new features, as a general rule, we always recommend using the latest build of the drivers. But you know your application and the details "under the hood" so you are the best person to determine when to perform the upgrade. Upgrading Client Environments ================================ The first thing to do is to consider if the current update is needed and then determine the right moment to install it. If you determine that you are going to upgrade the drivers, you would always first upgrade them in the development environment for the DataFlex revision being used and fully test the application(s) you run in that host revision. Once your applications have been thoroughly tested, deploy the applications with the new version of the driver and plan the upgrade of existing sites. Keep in mind that this update is to be installed in development environments - this ZIP file includes files that are not needed in a client environment. In order to upgrade client sites, you will need to create your own installation and procedure following instructions outlined in the deployment book of the respective DataFlex Help System. Recent Changes and Fixes (since Build 6.2.0.42) ================================================== The family of SQL Connectivity Kits (including Microsoft SQL Server, IBM DB2 and ODBC) are published as a set. The changes and fixes listed in this document comprise a summary of changes made to that set. Some changes are specific to particular CKs and others are generic to the set. Build 6.3.0.22 Changed the handling of binary data. Some database backends (MySQL) could not handle binary data properly. Binary data will now be read/written as pure binary. Reduced size of DF_TEXT and DF_BINARY buffers below 16384. DF_TEXT and DF_BINARY columns with size below 16384 would still allocate buffers of 16384. Now changed to the actual column length as specified in the INT file. ODBC_DRV: PostgreSQL: Fix for handling binary data with PostgreSQL. PostgreSQL uses TYPEA type for binary data. Changed PostgreSQL.int file. PostgreSQL: Fix for handling descending index segments on PostgreSQL. Changed PostgreSQL.int file. PostgreSQL: Fix max length for text columns. PostgreSQL ODBC driver returns 8190 as maximum length for text columns, while it can actually be 1GB. MariaDB: Bugfix: Table with same name in multiple databases could use table definition from other database. Bugfix: MariaDB EnumerateTables returns all tables across all databases. PostgreSQL,Oracle,MySQL,MariaDB: Implemented identity column support for PostgreSQL and Oracle. Improved auto_increment support for MySQL and MariaDB. PostgreSQL: Use_Identity_Type setting in PostgreSQL.Int is true by default. This will create identity columns with the GENERATED BY DEFAULT AS IDENTITY clause. This clause is supported in PostgreSQL 10 and later. For earlier PostgreSQL versions set Use_Identity_Type 0 Changed PostgreSQL.int Oracle: Use_Identity_Type setting in Oracle.Int is true by default. This will create identity columns with the GENERATED BY DEFAULT AS IDENTITY clause. This clause is supported in Oracle 12c and later. For earlier Oracle versions set Use_Identity_Type 0 Changed Oracle.int MySQL/MariaDB: Improved auto_increment support for MySQl/MariaDB. Recnum tables will now have GENERATE_RECORD_ID_METHOD IDENTITY_COLUMN in the table INT file. Changed MySQL.INT and MariaDB.int. Build 6.3.0.21 Bugfix: After moving a value to a field buffer that already contained that same value, the DF_FILE_CHANGED attribute would sometimes incorrectly be set to true. Build 6.3.0.20 Bugfix: SQLSetParameter could cause right truncation or function sequence errors. Build 6.3.0.19 ODBC_DRV: PostgreSQL: citext type was returned as DF_ASCII(255), changed to DF_TEXT. Build 6.3.0.18 SQLFetchResultsetValues will no longer generate "Invalid Cursor State" error for non-existing result set. Changed sql.pkg Build 6.3.0.17 Constrained_find would in some situations invalidate the Find Cache on every find, causing slow performance. Build 6.3.0.16 Internal build. Build 6.3.0.15 Conversion of system table would fail if the source table was SQL driver based. Build 6.3.0.14 SQLSetParameter would add a trailing space to the passed parameter. ODBC_DRV: MySQL: Creation or conversion of Numeric(14.8) columns would fail with Syntax error. MySQL: Creation or conversion of DF_ASCII with length > 255 would fail. Such columns will now be converted to DF_TEXT, since MySQL char and varchar are limited to length 255. Build 6.3.0.13 ODBC_DRV: MySQL: Refresh table in DataFlex Studio would fail with “Could not open and analyze SQL table or its INT file” error. Caused by schema name being set to login user name. MariaDB: Refresh table would sometimes write incorrect primary index to INT file. Build 6.3.0.12 ODBC_DRV: Prior DataFlex ODBC drivers had several issues that caused some functionality not to work when used with MySQL and MariaDB. Several changes have been made in this update to make the DataFlex ODBC driver work properly with these databases. Build 6.3.0.11 Passing a variable length parameter (e.g varchar(max) ) for a stored procedure with SQLSetParameter could in some circumstances cause an exception. When receiving result messages from a stored procedure or SQL script with SQLGetMessage, messages would be limited to 512 characters. The maximum length for result messages has been increased to 1024. Build 6.3.0.10 Embedded SQL. Changed SQL.pkg. Added support to change the cursor type for an embedded SQL statement. Build 6.3.0.9 Additional changes for parameterized queries. Changed sql.pkg MSSQLDRV: Mssqldrv.int: Changed comments to reflect type mappings for SQL Server 2012 also apply for SQL Server 2014, SQL Server 2016 and SQL Server 2017. Build 6.3.0.8 Added support for parameterized queries in embedded SQL. New sql.pkg with new functions: SQLSetParameter SQLSetNextParameter. Further details and examples see Embedded SQL Parameterized queries Build 6.3.0.7 DB2_DRV: On a DB2 standard table with an identity column: Would generate "Wrong number of parameters." error when a value was provided for the identity column. After restructure of DB2 standard table with an identity column, the identity value would not properly be restarted. https://support.dataaccess.com/Forums/showthread.php?62709-DF-19-0-DB2-CK-Error-quot-CLI0100E-Wrong-number-of-parameters-quot-when-saving-creating-from-dbExplorer Build 6.3.0.6 Moved Function DriverIndex from mssqldrv.pkg (Class cMSSQLHandler) to cli.pkg (Class cCLIHandler) Changed cli.pkg. (reverted back to array class) Changed DF_FILE_DATABASE_ID to make consistent with DF_DATABASE_ID. MSSQLDRV: Added Function SqlServerClientDriverName that returns the driver name. The driver name can be used to compose a connect string. Changed mssqldrv.pkg Build 6.3.0.5 Embedded SQL: Changed driver internal handling of connection and statement handles. ODBC_DRV: Removed obsolete ODBC commands from odbc_drv.pkg. Build 6.3.0.4 Cleanup of driver related pkgs: Sql.pkg (changed single line if’s to multiline) Changed driver internal handling of DF_DATABASE_ID attribute. Added compiler warning DFERR_COMP_WARNING_OBSOLETE_CMD for obsolete commands: CLI_SetConstraint; MSSQL_SetConstraint; DB2_SetConstrained; CLI_Get_Driver_Attribute; CLI_Set_Driver_Attribute; CLI_Get_Database_Attribute MSSQLDRV: Added support for “ODBC driver 17 for SQL Server”. (SQL Server 2017 client) Changed Mssqldrv.pkg DB2_DRV: For the DB2 TIMESTAMP type (DataFlex DATETIME type) the number of decimals (milliseconds, nanoseconds) can now be specified. DB2 allows TIMESTAMP(0) thru TIMESTAMP(12). Default is 0 decimals. In the DataFlex Studio this can be specified as length 23.0 thru 23.12. Note that more than 3 decimals may be truncated by the DataFlex runtime. It is recommended to use a maximum of 3 decimals for DATETIME type. Earlier versions of DataFlex DB2 driver would create DATETIME columns as TIMESTAMP(6). Changed DB2_DRV_DriverDef.xml file. Build 6.3.0.3 Cleanup of driver related pkgs: cli.pkg; mssqldrv.pkg; db2_drv.pkg; odbc_drv.pkg; sql.pkg Addressed issue reported at https://support.dataaccess.com/Forums/showthread.php?62350-SQLColAttribute-returns-wrong-DFTYPE-for-DateTime Fill_Field DF_LOW/DF_HIGH of a time column, filled with incorrect time values. This caused "Time contains an invalid value." errors. Also during constrained finds on indexes with time column. https://support.dataaccess.com/Forums/showthread.php?62327-Error-4525-Time-contains-an-invalid-value After changing Index Type from Server to Client_Only AND clearing the Index Name, the table could not be opened anymore because of invalid INT file. Exclusive open of a table with no index.1 would cause 'Index number out of range' error. ODBC_DRV: Creating indexes and primary keys on PostgreSQL failed when using other than default schema 'public'. Structure_End would lowercase schema names on PostgreSQL Build 6.3.0.2 Removed DF_File_Record_Identity attribute from Studio driver configuration files. Fix to make Studio driver configuration files work with DataFlex Studio before 19.0. Changed files: MSSQLDRV_DriverDef.xml; DB2_DRV_DriverDef.xml; ODBC_DRV_Driverdef.xml. Build 6.3.0.1 Delete_Index of a non-temporary index outside structure_start/structure_end caused access violation. (BT 7318) Recnum tables with RECNUM column bigint could not be restructured. Fixed. For full details and a complete list of changes since build 4.0.0.35, please refer to SQL Connectivity Changes and Fixes.pdf available in the ZIP file in the Documentation folder. Supported Environments ======================= DataFlex 19.x and higher • Microsoft SQL Server 2019 (including LocalDB) using ODBC Driver 17 for SQL Server (or higher) • Microsoft SQL Server 2017 (including LocalDB) using ODBC Driver 17 for SQL Server (or higher) • Microsoft SQL Server 2016 (including LocalDB) using ODBC Driver 13.1 for SQL Server (or higher) • Microsoft SQL Server 2014 (including LocalDB) using ODBC Driver 11 or 13 for SQL Server (or higher) • Microsoft SQL Server 2012 (SP4 including LocalDB) using SQL Server 2012 Native Client (v.11.0 or higher) NOTE: While older ODBC drivers can be used with newer versions of SQL Server, only the latest ODBC driver for your SQL Server version will provide support for your SQL Server’s new features. DB2 11.5 and higher ODBC databases using their corresponding ODBC connectors/drivers: MySQL 8.0.19 and higher MariaDB 10.5.4 and higher Amazon Aurora 2.07.2 (based on MySQL 5.7) PostgreSQL 12.3 Oracle 18c and higher MDAC 2.8 Windows 10 Windows Server 2019 (including x64) Windows Server 2016 (including x64) ZIP File Contents =================== The ZIP file includes five folders containing the following files: 1. Bin Access.int CKDaemon.exe DB1398.dfr DB2rtx.dll DB2_Drv.cfg db2_drv.dll db2_drv.int DB2_DRV_DriverDef.xml MariaDB.int MS1383.dfr MSSQLDrv.cfg mssqldrv.dll mssqldrv.int MSSQLDRV_DriverDef.xml MSSQLrtx.dll MySQL.int OD1476.dfr ODBCrtx.dll ODBC_Drv.cfg odbc_drv.dll odbc_drv.int ODBC_Drv_Database.int ODBC_DRV_DriverDef.xml Oracle.int Pervasive.SQL.int PostgreSQL.int Register.exe Register.exe.manifest SQLBase.int winsetup.dll 2. Documentation SQL Connectivity Recent Changes and Fixes.pdf Whats New in SQL Connectivity Version 6.pdf 3. Help DevelopmentGuide.chm (DataFlex SQL Drivers book located under Developing Database Applications | Data Connectivity) Tools.chm (Product Registration book located under Development Tools) 4. Pkg CKCompatibility.pkg cli.pkg cTableColumnFetchHelper.pkg db2_drv.pkg MSSqldrv.pkg odbc_drv.pkg sql.pkg sqlOld.pkg 5. Usr (English) DFErr003.dat DFErr003.hdr DFErr003.tag Installing DataFlex SQL Drivers ================================== Before installing this version of the DataFlex SQL Drivers in your production environment, make sure you: + review the documentation installed both in the Documentation and Help folder (see items 2 and 3 under ZIP File Contents) to learn about the changes that this version will bring to your environment + install it in a test environment first to verify the effects this new version has on your existing applications Once ready, install the new build by following the steps listed below: 1. Stop WebApp Server service, and exit any DataFlex tools or applications so files that need to be replaced are not in use 2. Backup your current DataFlex environment making sure to include the five folders listed above that will be receiving the new files 3. Download the ZIP to a local folder 4. Extract the contents of the ZIP file to the DataFlex root folder where you would like to update/use the DataFlex SQL Drivers version 6.3.0.22. For example, if you would like to install this update to be used in a DataFlex 19.1 Studio environment, choose to extract DataFlex SQL Drivers v.6.3.0.22.zip to the root folder of 19.1 (default location: C:\Program Files\DataFlex 19.1) - the files will be extracted to the same destination subfolders as listed in the zip. If asked, choose to overwrite and replace files in the destination folders Important! If you are using the Windows built-in ability to deal with compressed files and have installed DataFlex into the default location (i.e. under Program Files), when extracting the contents of the ZIP file you may be prompted to use elevated rights in case you are not logged in as Administrator. However, if you are using a third-party tool (like WinZip), you may NOT be prompted to use elevated rights and the extraction may silently just not work. Please, follow the third-party tool manufacturer’s instructions on how to extract files when elevated rights is needed. Support ========= Data Access Worldwide offers no specific support for this installation process. Support for DataFlex SQL Drivers will be included with your DataFlex license and will follow current support policies outlined on the company's website at https://www.dataaccess.com/Support. If you have any questions, email support@DataAccess.com. Copyright 2021, Data Access Corporation.