SQL Driver Build Notes 19.1
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:
Several changes to make DataFlex ODBC driver work properly with MySQL
and MariaDB.
- New MariaDB.INT file with configuration settings when using MariaDB
ODBC driver. This file should be present in DataFlex xx.x\bin folder.
- Changed MySQL.INT file with configuration settings when using MySQL
ODBC driver. This file should be present in DataFlex xx.x\bin folder.
- Changed Studio configuration file: ODBC_DRV_DriverDef.xml file.
Added df_field_is_identity column attribute.
The changes were tested with the following environments. Use the ODBC
driver versions as a minimum, earlier versions may not work.
MySQL
- Latest MySQL versions (server and ODBC connector) can be downloaded
here: https://dev.mysql.com/downloads/
- Tested MySQL version:
- MySQL 8.0.13 Community server 8.0.13
- Minimum required MySQL ODBC driver version:
- MySQL ODBC 8.0 ANSI Driver Version 8.0.13 (mysql-connector-odbc-8.0.13-win32.msi)
MariaDB
- Latest MariaDB versions (server and ODBC connector) can be downloaded
here: https://downloads.mariadb.org/
- Tested MariaDB version:
- MariaDB 10.2 Series
- Minimum required MariaDB ODBC driver version:
- MariaDB Connector/ODBC 3.0 Series 3.0.8 (mariadb-connector-odbc-3.0.8-win32.msi)
Some of the features now tested and supported by the DataFlex ODBC driver
(6.3.0.12 or later) when connected to MySQL or MariaDB:
- Basic DataFlex data manipulation (Find/Save/Delete)
- Creating/maintaining tables in DataFlex Studio.(Restructure)
- Conversion from DataFlex embedded to MySQL/MariaDB.
- Support for managed connections
- Support for recnum tables and standard tables.
- Support for primary keys.
- Support for auto_increment (identity) columns
- Embedded SQL
Build 6.3.0.11
All DataFlex SQL Drivers:
- 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
All DataFlex SQL Drivers:
Build 6.3.0.9
All DataFlex SQL Drivers:
- 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
All DataFlex SQL Drivers:
- 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
Drivers 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.
Build 6.3.0.6
MSSQLDRV:
- Added Function SqlServerClientDriverName
that returns the driver name. The driver name can be used to compose
a connect string.
All DataFlex SQL Drivers:
- 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.
Build 6.3.0.5
All DataFlex SQL Drivers:
- 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
All DataFlex SQL Drivers:
- Cleanup of driver related pkgs: Sql.pkg (changed single line if’s
to multiline)
MSSQLDRV:
- Added support for “ODBC driver 17 for SQL Server”. (SQL Server
2017 client)
- The MSSQLDRV driver will now recognize the following clients. The
highest installed client version on a workstation will be used:
Client Name SQL Server Version Version Number
SQL Server SQL Server 2000 client 8
SQL Native Client SQL Server 2005 client 9
SQL Server Native Client 10.0 SQL Server 2008 client 10
SQL Server Native Client 11.0 SQL Server 2012 client 11
ODBC Driver 11 for SQL Server SQL Server 2014 client 12
ODBC Driver 13 for SQL Server SQL Server 2016 client 13
ODBC Driver 17 for SQL Server SQL Server 2017 client 17
All DataFlex SQL Drivers:
- Changed driver internal handling of DF_DATABASE_ID attribute.
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).
All DataFlex SQL Drivers:
- 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
Build 6.3.0.3
All DataFlex SQL Drivers:
- Code cleanup of driver related pkgs; cli.pkg, mssqldrv.pkg, db2_drv.pkg,
odbc_drv.pkg and sql.pkg
- Embedded SQL function SQLColAttribute SQLCOLATTRIB_DFTYPE returned
invalid values for some native types:
SQL Server:
- datetime column returned DF_DATE. Now changed to DF_DATETIME
- datetime2 column returned DF_DATE. Now changed to DF_DATETIME
- varchar(max) column returned DF_ASCII. Now Changed to DF_TEXT
DB2:
- Timestamp column returned DF_DATE. Now changed to DF_DATETIME
- BLOB column returned DF_ASCII. Now changed to DF_BINARY
- 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.
- 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
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.3.0.1
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.
See Also
What's New in DataFlex
2019 - 19.1