DataFlex SQL Connectivity Kits from Data Access Worldwide Version: 6.2.0.42 Release Date: December 5, 2017 File: SQL Connectivity Kits v.6.2.0.42.zip Introduction =============== Connectivity Kits provide DataFlex Studio, Windows and Web Clients and WebApp Server with database drivers for Microsoft SQL Server, IBM DB2 and via ODBC MySQL and other database servers and data sources. Use of Connectivity Kits is governed by the license agreement included with the Software Product with which the Connectivity Kits 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 deployment environments that already have a previous version of the Connectivity Kits installed. It will also install drivers where no Connectivity Kit has been previously installed. Do you need this driver version? ================================== DataFlex installs SQL Connectivity Kits as part of its installation, so you may already have the version of the drivers you need. Please, check the list below to see if you need to update your drivers: DataFlex 2017 - 19.0: SQL Connectivity Kits version 6.2.0.42 DataFlex 2016 - 18.2: SQL Connectivity Kits version 6.1.0.27 DataFlex 2015 - 18.1: SQL Connectivity Kits version 6.1.0.18 Recent Changes and Fixes (since Build 6.1.0.32) ================================================== 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. For details on those changes, please refer to SQL Connectivity Recent Changes and Fixes.pdf Build 6.2.0.42 All DataFlex SQL Drivers: 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. Build 6.2.0.41 All DataFlex SQL Drivers: 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. System table with real recnum column on SQL and no primary_index 0 in the INT file, would not hide the recnum column. MSSQLDRV: Changed MSSQLDRV_DriverDef.xml. MSSQLDRV_DriverDef.xml would only work with DataFlex Studio 19.0, but not with DataFlex Studio’s before 19.0. Build 6.2.0.40 MSSQLDRV: A date or datetime column with a default value 'getdate()' would not be filled with the current datetime on save of a new record. DB2_DRV and ODBC_DRV: A date or datetime column with a default value 'CURRENT_TIMESTAMP' would not be filled with the current datetime on save of a new record. The default value to generate a timestamp can vary per database backend. Build 6.2.0.39 All DataFlex SQL Drivers: Set_attribute DF_INDEX_NAME for a temporary index caused exception. Changed cli.pkg DF_INDEX_TEMPORARY had wrong value. Build 6.2.0.38 MSSQLDRV: In some very rare situations a system table can unintentionally end up with more than 1 record. On SQL Server this would generate very hard to track-down errors: “Connection is busy with results for another command”. Made a change that prevents the connection busy error. Instead, a “System Table has more than one record.” error will be generated on open. Build 6.2.0.37 All DataFlex SQL Drivers: Changed naming in driver dll properties: mssqldrv.dll DataFlex SQL Server Driver db2_drv.dll DataFlex DB2 Driver odbc_drv.dll DataFlex ODBC driver Build 6.2.0.36 MSSQLDRV: When using GUID (uniqueidentifier) columns with default value newid() or newsequentialid(), the OUTPUT clause is used to return generated GUID values in the buffer. When the table also has a trigger defined, this caused an error about invalid use of the OUTPUT clause. Changed to use OUTPUT INTO clause. Build 6.2.0.35 All CLI Connectivity Kits: Updated Studio driver configuration files Build 6.2.0.34 All CLI Connectivity Kits: Changed index creation order during restructure/conversion All CLI Connectivity Kits Improved context information in Open errors. Added Table= and Source= context. Build 6.2.0.33 DB2_DRV: When calling a DB2 stored procedure with a CLOB argument the length of the passed parameter in SQLSetArgument was larger than 16K. The parameter would be truncated to 16K. Build 6.2.0.32 All CLI Connectivity Kits: Changed some error texts for open errors. Build 6.2.0.31 All CLI Connectivity Kits: Open of a system table in database explorer 19.0 raised "Index number out of range" error. Caused by Get_attribute DF_INDEX_NAME of a system table raising "Index number out of range" error. Changed to not generate error but return empty string for DF_INDEX_NAME. Build 6.2.0.30 All CLI Connectivity Kits: When setting or getting a SQL filter no oem/ansi conversion was done caused SQL filters not to work properly with accented characters. MSSQLDRV: Added SQL Server client name in error text on minimum client version. Build 6.2.0.29 All CLI Connectivity Kits: Changed cli.pkg to add constants for missing cli error codes (CLIERR_ ) Added version check for minimum database client version for DB2_DRV and ODBC_DRV. New driver configuration file (mssqldrv.int, db2_drv.int, odbc_drv.int) keyword: MINIMUM_CLIENT_VERSION New attribute: DF_DRIVER_MINIMUM_CLIENT_VERSION DB2_DRV: Made a change to enable DSN-less connections for DB2. All CLI Connectivity Kits: Changed driver configuration files (mssqldrv.int, db2_drv.int, odbc_drv.int) to add new settings for Connectivity Kits 6.2: Minimum_Client_Version, Login_On_Open and Allowed_structure_changes Build 6.2.0.28 All CLI Connectivity Kits: All searches for connectstring keywords (like SERVER, DSN) made case insensitive. MSSQLDRV: Added version check for minimum database client version. New driver configuration file (mssqldrv.int) keyword: MINIMUM_CLIENT_VERSION New attribute: DF_DRIVER_MINIMUM_CLIENT_VERSION The default value for minimum client version is 10 SQL Server Native Client 10.0 (SQL Server 2008 client) The version check will be performed during login. Note the first open in a program may also do a login. MSSQLDRV: Changed mssqldrv.pkg to add Function SqlServerClientVersionName Integer iClientVersion Returns String ODBC_DRV: Changed ODBC_DRV_DriverDef.xml to include new attributes for DataFlex 19.0 / Connectivity Kit 6.2: df_file_restructure df_file_restructure_int_only df_file_allowed_structure_changes df_index_sql_type df_index_number Build 6.2.0.27 Internal build Build 6.2.0.26 DB2_DRV and ODBC_DRV: Enumeration of tables with function EnumerateTables would not list all tables when one or more tables with comments longer than 128 characters were found. Build 6.2.0.25 All CLI Connectivity Kits: Reference to index.0 was not written to the INT file in case of an index-only restructure. (A restructure that only involves creating/dropping of indexes). All CLI Connectivity Kits: If no SERVER_NAME was present in the INT file, would cause an exception. Build 6.2.0.24 All CLI Connectivity Kits: cli.pkg Removed double ifdef All CLI Connectivity Kits: After a failed login with invalid connection id, a connection handle was not released. Build 6.2.0.23 Internal build Build 6.2.0.22 MSSQLDRV: Changed mssqldrv.pkg to add constants for “ODBC Driver 11 for SQL Server” (Client for SQL Server 2014) and “ODBC Driver 13 for SQL Server”. (Client for SQL Server 2016) in mssqldrv.pkg. Added new function EnumerateServersLocal. Build 6.2.0.21 Internal build Build 6.2.0.20 MSSQLDRV: Added support for “ODBC Driver 11 for SQL Server” (Client for SQL Server 2014) and “ODBC Driver 13 for SQL Server”. (Client for SQL Server 2016). The MSSQLDRV connectivity Kit will now recognize a range of clients that includes ODBC Driver 13 for SQL Server. All CLI Connectivity Kits: Bug in RedirectIdConnectString caused memory error in logout. All CLI Connectivity Kits: Setting a constrain with accented characters did no oem/ansi translation. MSSQLDRV: Changed default map schema for SQL Server (DEFAULT_MAP_DF_TO_SQL_TYPE_SCHEMA) to MAP_DF_TO_SQL_TYPE_SQL2012. Build 6.2.0.19 All CLI Connectivity Kits: A masked time value of 00:00:00 would be passed as " : : ", causing a “Time contains an invalid value” error. This will now be handled as time value 00:00:00. Build 6.2.0.19 All CLI Connectivity Kits: Restructure prevention changes. Implemented a new table level attribute DF_FILE_ALLOWED_STRUCTURE_CHANGES Build 6.2.0.18 All CLI Connectivity Kits: Added new DF_DRIVER_CONFORMANCE level bit All CLI Connectivity Kits: Implemented a new setting ALLOWED_STRUCTURE_CHANGES Build 6.2.0.17 All CLI Connectivity Kits: If an error occurs during open, the driver will now return error 75 DFERR_CANT_OPEN_DATA_FILE. Build 6.2.0.16 All CLI Connectivity Kits: Bugfix: Setting the value of a SQL_TIME column, could cause memory overwrite. RedirectIdConnectString and RedirectIdConnectStringKeepLoggedIn now combined to single function with bKeepLoggedIn parameter. New RedirectIdConnectString function. Build 6.2.0.15 New RedirectIdConnectStringKeepLoggedIn function. Amended version of RedirectIdConnectString function. Build 6.2.0.14 Added new attribute DF_DATABASE_DEFAULT_DATABASE. New RedirectIdConnectString function. MSSQLDRV: Bugfix conversion to SQL Server - CLI_BCP function. When date columns allow nulls (Default_Nullable_Date setting in mssqldrv.int) and no dummy zero dates are used (Default_Use_Dummy_Zero_Date in mssqldrv.int) the conversion will now save 0 dates as NULL in SQL Server. Build 6.2.0.13 All CLI Connectivity Kits: Setting the DD value of a text column could cause memory error All CLI Connectivity Kits: Moving data to a df_ascii/sql_varchar column, where the data was larger than the field length, could cause a memory error. Build 6.2.0.12 Added new embedded SQL function SQLConnectionConnect Build 6.2.0.11 All CLI Connectivity Kits: Trying to open a table that does not exist in the SQL database, an "Invalid cursor state" error would be raised. Now changed to "Table not in connection" error. All CLI Connectivity Kits: Added new driver level setting LOGIN_ON_OPEN and new driver level attribute DF_DRIVER_LOGIN_ON_OPEN New cli.pkg with DF_LOGON_ON_OPEN attribute added. Build 6.2.0.10 ODBC_DRV: Oracle columns created as type INTEGER returned an incorrect length. All CLI Connectivity Kits: Changing DF_Length of integer type columns is now an int file only change (df_file_restructure_int_only). All CLI Connectivity Kits: When renumbering an index (DF_INDEX_NUMBER) that is the primary index, the df_file_primary_index must also be renumbered. Build 6.2.0.9 Support for temporary indexes that are created on the fly at runtime. They will only exist as long as the table is open. Temporary indexes will not be created on the server. New cli.pkg: Added DF_INDEX_TEMPORARY as possible value for DF_INDEX_SQL_TYPE attribute. Build 6.2.0.8 Fixed a bug where create_index did not adjust last_index_number properly Build 6.2.0.7 Bugfix: SQLConnect crashed when connecting with a not existing connection ID. Bugfix: Opening table with no index definition in INT (system table !) crashed the driver. Build 6.2.0.6 If a column appears as a segment in a server_only index, the field_index of the column will no longer be set during open. When adding a new index (Create_Index) and there are server_only indexes present, the new index will get the number of the first server_only index. The server_only index(es) will get their index number incremented, so they remain at the end of the index list. Added new attribute DF_INDEX_NUMBER that allows to renumber indexes. New cli.pkg with DF_INDEX_NUMBER added New MSSQLDRV_DriverDef.xml with DF_INDEX_NUMBER added Build 6.2.0.5 New attribute DF_FILE_RESTRUCTURE_INT_ONLY added. New cli.pkg with DF_FILE_RESTRUCTURE_INT_ONLY attribute added. Build 6.2.0.4 New index attribute DF_INDEX_SQL_TYPE added. This attribute replaces DF_INDEX_ON_BACKEND attribute. DF_INDEX_ON_BACKEND remains as a read-only attribute for backward compatibility, but should no longer be used. New MSSQLDRV_DriverDef.xml file - added DF_INDEX_SQL_TYPE attribute. New cli.pkg - added DF_INDEX_SQL_TYPE attribute. Build 6.2.0.3 All CLI Connectivity Kits: During conversion recnum index would be created as client side index. Build 6.2.0.2 All CLI Connectivity Kits: The default for DF_INDEX_ON_BACKEND was false when creating new index on new table. This caused all indexes to be created as client side indexes during conversion. Build 6.2.0.2 (merge from 6.1.0.28) All CLI Connectivity Kits: On a standard table with an identity column (df_file_identity = true), when inserting or deleting a column BEFORE the identity column, the identity would not be adjusted. This caused identity insert error during restructure. Build 6.2.0.1 Improved support for client side indexes. Attribute DF_INDEX_ON_BACKEND is now a read/write attribute. 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 18.x and higher • Microsoft SQL Server 2017 (including LocalDB) using ODBC Driver 13.1 for SQL Server • Microsoft SQL Server 2016 (including LocalDB) using ODBC Driver 13 for SQL Server • Microsoft SQL Server 2014 (including LocalDB) using ODBC Driver 11 for SQL Server • Microsoft SQL Server 2012 (SP3 including LocalDB) using SQL Native Client 11.0 DB2 10.1 and higher MDAC 2.8 Windows 7 and higher ZIP File Contents =================== The ZIP file includes five folders containing the following files: 1. Bin Access.int CKDaemon.exe DB1398.dfr DB2_Drv.cfg db2_drv.dll db2_drv.int DB2_DRV_DriverDef.xml DB2rtx.dll MS1383.dfr MSSQLDrv.cfg mssqldrv.dll mssqldrv.int MSSQLDRV_DriverDef.xml MSSQLrtx.dll MySQL.int OD1476.dfr ODBC_Drv.cfg odbc_drv.dll odbc_drv.int ODBC_Drv_Database.int ODBC_DRV_DriverDef.xml ODBCrtx.dll ora_drv_DriverDef.xml Oracle.int Pervasive.SQL.int PostgreSQL.int Register.exe Register.exe.manifest winsetup.dll 2. Documentation SQL Connectivity Recent Changes and Fixes.pdf Whats New in SQL Connectivity Version 6.pdf 3. Help Connectivity.chm 4. Pkg cli.pkg cTableColumnFetchHelper.pkg db2_drv.pkg dir.txt MSSqldrv.pkg odbc_drv.pkg sql.pkg sqlOld.pkg 5. Usr DFErr003.dat DFErr003.hdr DFErr003.tag Installing SQL Connectivity Kits ================================== Before installing this version of the Connectivity Kit 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. 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 Connectivity Kits version 6.2.0.42. For example, if you would like to install this update to be used in a DataFlex 18.0 Studio environment, choose to extract SQL Connectivity Kits v.6.2.0.42.zip to the root folder of 18.0 (default location: C:\Program Files\DataFlex 18.0) - 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 Connectivity Kits will be included with your DataFlex license and will follow current support policies outlined on the company's website at http://www.dataaccess.com/resources/customer-support-1196. If you have any questions, email support@DataAccess.com. Copyright 2017, Data Access Corporation.