Key Changes in Product Behavior
Starting with version 17.10.00.045, the allowable conversions between C types and SQL types for time related data types have been tightened.
The following is one example:
Assume that a database table contains an "INTEGER FORMAT '99:99:99'" column and a client program is attempting to execute a parameterized query by calling SQLBindParameter() with SQL_C_TIME as the C type.
With an older Driver (before 17.10.00.045) the database will successfully insert the data. However, with a newer driver (17.10.00.045 and later, which sends a different set of data parcels to the database), the database generates the following error: "[Teradata Database](-5407)Invalid operation for DateTime or Interval." This is because the column is an integer type, the database expects integer data, not time data.
For this example, the client program should either:
- change the column type to TIME; or,
- change the call to SQLBindParameter() to use SQL_C_LONG instead of SQL_C_TIME.
Client applications may encounter similar problems with other data types.