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 giLastSQLhstmt in SQLClose and giLastSQLhdb in SQLDisconnect

Marked the following properties as private:

 

Build 6.0.0.30

MSSQLDRV:

Fix for DF_FIELD_INDEX, DF_FIELD_RELATED_FILE and DF_FIELD_RELATED_FIELD  attributes sometimes returning incorrect values.  

This happened in following situation:

Processing large number of tables, querying all table attributes.  (StSync  tool).

Hidden columns present (NEXT_COLUMN_HIDDEN in 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. SQLNextResultSet will 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 of call_driver calls when calling SQLGetData.

The new functions SQLFetchRowValues and SQLFetchResultsetValues will now also return variable data.

Changes to embedded sql (sql.pkg)
 

PLEASE NOTE:

Important notes about Embedded SQL (sql.pkg)

This version of sql.pkg will only work with CLI Connectivity Kits 6.0.0.28 or later. For earlier Connectivity Kit versions use sqlold.pkg.

This version of sql.pkg will no longer function with DataFlex character mode (DataFlex 3.2). To use embedded SQL with DataFlex character mode, use sqlold.pkg.

This version of sql.pkg no longer contains the embedded SQL command interface. The command interface is still available in sqlold.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 of call_driver calls when calling SQLColumnValue.

New sql.pkg for embedded SQL:

• Several performances improvements to speed up getting a value with SQLColumnValue

• New functions:

Function SQLFetchRowValues Returns String[]

Fetches a row and returns all columns in an array.

Function SQLFetchResultsetValues Returns String[][]

Fetches all rows of a result Set and Returns the result set as a 2-dimensial array.

• 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_Type from DF_Date to DF_Datetime would sometimes

set the sql type to "unknown type"

ALL CLI CK’s:

Setting Native_Type to "unknown type" generated an error that the type is not supported by the backend.

 

Build 6.0.0.24

MSSQLDRV:

Setting DF_FIELD_NATIVE_TYPE to "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_FORMAT was set to DF_DATE_MILITARY an error 4523 DateTime contains an invalid value, could be generated:

By the FillField command.

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_CONFORMANCE level. This attribute will now return the value 7.

The DF_DRIVER_CONFORMANCE  attribute must be handled  as a bitwise integer value, where each bit indicates whether the Connectivity Kit supports a certain feature.

DF_DRIVER_CONFORMANCE now 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.xml file

MSSQLDRV:

New MSSQLDRV_DriverDef.xml file

 

Build 6.0.0.21

ODBC_DRV:

The Oracle DATE type will now be mapped to DF_DATE by default. It can be mapped to DF_DATETIME by specifying FIELD_TYPE DATETIME in the <table.int> file.

Made changes to Oracle.int configuration file to reflect 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 uniqueidentifier and time types.  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_Type values for SQL Server (var….(max), money and datetime types).

ALL CLI CK’s:

The DF_length for integer and small integer type columns was too short. Changed maximum/default df_length for SQL_Integer and SQL_SmallInt columns:

SQL_Integer  from NUM(9.0) to NUM(10.0)

SQL_SmallInt from NUM(4.0) to NUM(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:

Move <somevalue> to TheTable.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.

 

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.

 

See Also

What's New in DataFlex 2014 - 18.0