Connectivity in 18.0
Detailed List of Changes
Build 6.0.0.32
DB2_DRV
- Connecting to a DB2 table with the DB2 Connection Wizard would fail with ‘Cannot open table on backend’ error. The earlier fix in build 6.0.0.31 did not cover all situations.
Build 6.0.0.31
MSSQLDRV
- Dbbuilder conversion to SQL Server (CLI_BCP): Converting DF_ASCII columns to varchar or nvarchar would create the (n)varchar columns padded with spaces. DF_ASCII columns will now be trimmed when converting to varchar or nvarchar.
DB2_DRV
- Connecting to a DB2 table with the DB2 Connection Wizard would fail with ‘Cannot open table on backend’ error. This was caused by the connectivity kit incorrectly determining the table type (standard or recnum table) and the record_identity_method.
Build 6.0.0.30a
Sql.pkg (Embedded SQL)
-
When executing 2 embedded SQL queries in succession and the first result set is empty, invalid statement handle errors could occur when fetching from the second result set. Solved by clearing
giLastSQLhstmtinSQLCloseandgiLastSQLhdbinSQLDisconnect. -
Marked the following properties as private:
paSQLColumnspsDummyZeroDatepsDummyZeroDateMssqlDatetime
Build 6.0.0.30
MSSQLDRV
- Fix for
DF_FIELD_INDEX,DF_FIELD_RELATED_FILE, andDF_FIELD_RELATED_FIELDattributes sometimes returning incorrect values. This happened in the following situation: - Processing a large number of tables, querying all table attributes (StSync tool).
- Hidden columns present (
NEXT_COLUMN_HIDDENin INT file).
Build 6.0.0.28c
Sql.pkg (Embedded SQL)
- After an embedded SQL call that returned multiple result sets, the statement properties (like
piColumnCount) were only stored for the first result set.SQLNextResultSetwill now store the properties for each result set.
Build 6.0.0.28
ALL CLI CK’s (Embedded SQL)
-
The column number can now be passed with
FUNC_SQLGETDATA. This gives the possibility to reduce the number ofcall_drivercalls when callingSQLGetData. -
The new functions
SQLFetchRowValuesandSQLFetchResultsetValueswill now also return variable data.
Changes to embedded SQL (sql.pkg)
- Removed character mode (DF32) syntax.
- Replaced all Class Array by Class
cObject. - Removed all local declarations.
- Replaced all
Current_Objectbyself. - Removed
Use case.mac. - Marked private properties and methods with
{ Visibility=Private }so they do not longer end up in the documentation. - Changed some of the private property/method names. Public interface is unchanged.
- Syntax changes (integer -> handle/create/destroy object).
- Changes in
DFDateToSQLDateandSQLDateToDFDatefunctions. - No longer use
cCliHandler. - Only get dummy zero date value from driver for
ODBC_DRV.Mssqldrvanddb2_drvhave fixed dummy zero date. - Handle 2 dummy zero dates for SQL Server:
1753-01-01forsql_type_timestamp,0001-01-01forsql_type_date.
Important Notes about Embedded SQL (sql.pkg)
- This version of
sql.pkgwill only work with CLI Connectivity Kits 6.0.0.28 or later. For earlier Connectivity Kit versions, usesqlold.pkg. - This version of
sql.pkgwill no longer function with DataFlex character mode (DataFlex 3.2). To use embedded SQL with DataFlex character mode, usesqlold.pkg. - This version of
sql.pkgno longer contains the embedded SQL command interface. The command interface is still available insqlold.pkg.
Build 6.0.0.27
ALL CLI CK’s (Embedded SQL)
-
The column number can now be passed with
FUNC_SQLCOLUMNVALUE. This gives the possibility to reduce the number ofcall_drivercalls when callingSQLColumnValue. -
New
sql.pkgfor embedded SQL: - Several performance improvements to speed up getting a value with
SQLColumnValue. -
New functions:
Fetches a row and returns all columns in an array.Function SQLFetchRowValues Returns String[]Fetches all rows of a result set and returns the result set as a 2-dimensional array.Function SQLFetchResultsetValues Returns String[][] -
Removed command interface (still available in
sqlold.pkg).
The new sql.pkg can only be used with connectivity kits version 6.0.0.27 and later. The previous version of sql.pkg is available as sqlOld.pkg and can be used with connectivity kits version before 6.0.0.27.
Build 6.0.0.26
MSSQLDRV
- On a SQL Server datetime column: changing the
DF_TypefromDF_DatetoDF_Datetimewould sometimes set the SQL type to "unknown type".
ALL CLI CK’s
- Setting
Native_Typeto "unknown type" generated an error that the type is not supported by the backend.
Build 6.0.0.24
MSSQLDRV
- Setting
DF_FIELD_NATIVE_TYPEto "datetime2" an incorrect length/precision would be set.
ALL CLI CK’s
- When setting
DF_FIELD_NATIVE_TYPE, the Connectivity Kit will check if the type is supported by the database server and raise an error if the type is not available. This might be the case, for example, for the date and datetime2 type not being available on SQL Server 2005 and earlier.
Build 6.0.0.23
ALL CLI CK’s
- When
DF_DATE_FORMATwas set toDF_DATE_MILITARY, an error 4523 "DateTime contains an invalid value" could be generated by theFillFieldcommand on constrained finds where there is at least one date in the index.
Build 6.0.0.22
ALL CLI CK’s
- Changed the
DF_DRIVER_CONFORMANCElevel. This attribute will now return the value 7. TheDF_DRIVER_CONFORMANCEattribute must be handled as a bitwise integer value, where each bit indicates whether the Connectivity Kit supports a certain feature.DF_DRIVER_CONFORMANCEnow indicates the following features: - Bit 1: Driver supports rowid
- Bit 2: Driver supports datetime type
- Bit 3: Driver supports DD SQL filters (added in build 6.0.0.22)
DB2_DRV
-
Made changes for setting the native type for DB2. Handling of the following DB2 types was changed:
GRAPHIC,VARGRAPHIC,LONGVARGRAPHIC,TIME,DBCLOB,BLOB. -
New
DB2_DRV_DriverDef.xmlfile.
MSSQLDRV
- New
MSSQLDRV_DriverDef.xmlfile.
Build 6.0.0.21
ODBC_DRV
- The Oracle DATE type will now be mapped to
DF_DATEby default. It can be mapped toDF_DATETIMEby specifyingFIELD_TYPE DATETIMEin the file. - Made changes to
Oracle.intconfiguration file to reflect the latest Oracle ODBC driver.
DB2_DRV
- The DB2 XML type does not allow a default value. DB2 XML columns will now be created as nullable, without a default value. DB2 XML type will always be mapped to
DF_TEXT.
MSSQLDRV
- SQL Server XML type will always be mapped to
DF_TEXT.
Build 6.0.0.20
MSSQLDRV
- Improved support for setting/getting native types. Added support for
uniqueidentifierandtimetypes. Changed various char/varchar to DF type mappings.
Build 6.0.0.19
MSSQLDRV
- Improved support for setting/getting native types. Added new
Df_Field_Native_Typevalues for SQL Server (var….(max),money, anddatetimetypes).
ALL CLI CK’s
- The
DF_lengthfor integer and small integer type columns was too short. Changed maximum/defaultdf_lengthforSQL_IntegerandSQL_SmallIntcolumns: SQL_IntegerfromNUM(9.0)toNUM(10.0)SQL_SmallIntfromNUM(4.0)toNUM(5.0)
This change will also allow recnum columns to store max value 2.147.483.647 (10 digits) instead of max 999.999.999 (9 digits).
ALL CLI CK’s
- In a situation where a date column is part of an overlap:
This would sometimes put an incorrect date value in the overlapped date column. On save, this would cause an 'invalid character value for cast specification' error.
Moveto TheTable.Overlap
Build 6.0.0.18
ALL
- Added new attribute
DF_FILE_SQL_FILTER_EQ. When set to true, SQL Filters will be applied to all Find EQ. The default value is false. Earlier versions of the Connectivity would never apply SQL Filters to Find EQ.
This change includes an updated cli.pkg with the DF_FILE_SQL_FILTER_EQ attribute added. When a SQL Filter changes between 2 consecutive Finds and there was no find cache timeout, the second find would return the next record from the find cache instead of applying the changed SQL Filter.
Build 6.0.0.16
ODBC_DRV
- Fixed a memory overwrite when connected to Oracle.