MySQL Connector/ODBC Release Notes  /  Changes in MySQL Connector/ODBC Version 5.1  /  Changes in MySQL Connector/ODBC 5.1.6 (2009-11-09)

Changes in MySQL Connector/ODBC 5.1.6 (2009-11-09)

Functionality Added or Changed

  • In the MySQL Data Source Configuration dialog, an excessive number of tabs were required to navigate to selection of a database. Connector/ODBC has been changed to make the tab order more practical, thereby enabling faster configuration of a Data Source. (Bug #42905)

Bugs Fixed

  • An error randomly occurred on Windows 2003 Servers (German language Version) serving classic ASP scripts on IIS6 MDAC version 2.8 SP2 on Windows 2003 SP2. The application connected to MySQL Server 5.0.44-log with a charset of UTF-8 Unicode (utf8). The MySQL server was running on Gentoo Linux.

    The script error occurred sporadically on the following line of code:

    SET my_conn = Server.CreateObject("ADODB.Connection")
    my_conn.Open ConnString  <- ERROR

    The connection was either a DSN or the explicit connection string:

    Driver={MySQL ODBC 5.1 Driver};SERVER=abc.abc.abc.abc;DATABASE=dbname;UID=uidname;PWD=pwdname;PORT=3306;OPTION=67108864;

    The error occurred on connections established using either a DNS or a connection string.

    When IISState and Debug Diagnostic Tool 1.0.0.152 was used to analyse the code, the following crash analysis was generated:

    MYODBC5!UTF16TOUTF32+6In 4640-1242788336.dmp the assembly instruction at
    myodbc5!utf16toutf32+6 in C:\Programme\MySQL\Connector ODBC 5.1\myodbc5.dll from MySQL AB
    has caused an access violation exception (0xC0000005) when trying to read from memory
    location 0x194dd000 on thread 33

    (Bug #44971)

  • Connector/ODBC overwrote the query log. Connector/ODBC was changed to append the log, rather than overwrite it. (Bug #44965)

  • Connector/ODBC failed to build with MySQL 5.1.30 due to incorrect use of the data type bool. (Bug #42120)

  • Inserting a new record using SQLSetPos did not correspond to the database name specified in the SELECT statement when querying tables from databases other than the current one.

    SQLSetPos attempted to do the INSERT in the current database, but finished with a SQL_ERROR result and Table does not exist message from MySQL Server. (Bug #41946)

  • Calling SQLDescribeCol() with a NULL buffer and nonzero buffer length caused a crash. (Bug #41942)

  • Connector/ODBC updated some fields with random values, rather than with NULL. (Bug #41256)

  • When a column of type DECIMAL containing NULL was accessed, Connector/ODBC returned a 0 rather than a NULL. (Bug #41081)

  • In Access 97, when linking a table containing a LONGTEXT or TEXT field to a Connector/ODBC DSN, the fields were shown as TEXT(255) in the table structure. Data was therefore truncated to 255 characters. (Bug #40932)

  • Calling SQLDriverConnect() with a NULL pointer for the output buffer caused a crash if SQL_DRIVER_NOPROMPT was also specified:

    SQLDriverConnect(dbc, NULL, "DSN=myodbc5", SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT)

    (Bug #40316)

  • Setting the ADO Recordset decimal field value to 44.56 resulted in an incorrect value of 445600.0000 being stored when the record set was updated with the Update method. (Bug #39961)

  • The SQLTablesW API gave incorrect results. For example, table name and table type were returned as NULL rather than as the correct values. (Bug #39957)

  • Connector/ODBC would crash when a character set was being used on the server that was not supported in the client, for example cp1251:

    [MySQL][ODBC 5.1 Driver][mysqld-5.0.27-community-nt]Restricted data type attribute violation

    The fix causes Connector/ODBC to return an error message instead of crashing. (Bug #39831)

  • Binding SQL_C_BIT to an INTEGER column did not work.

    The sql_get_data() function only worked correctly for BOOLEAN columns that corresponded to SQL_C_BIT buffers. (Bug #39644)

  • When the SQLTables method was called with NULL passed as the tablename parameter, only one row in the resultset, with table name of NULL was returned, instead of all tables for the given database. (Bug #39561)

  • The SQLGetInfo() function returned 0 for SQL_CATALOG_USAGE information. (Bug #39560)

  • Connector/ODBC 5.1.5 was not able to connect if the connection string parameters contained spaces or tab symbols. For example, if the SERVER parameter was specified as SERVER= localhost instead of SERVER=localhost the following error message will be displayed:

    [MySQL][ODBC 5.1 Driver] Unknown MySQL server host ' localhost' (11001).

    (Bug #39085)

  • The pointer passed to the SQLDriverConnect method to retrieve the output connection string length was one greater than it should have been due to the inclusion of the NULL terminator. (Bug #38949)

  • Data-at-execution parameters were not supported during positioned update. This meant updating a long text field with a cursor update would erroneously set the value to null. This would lead to the error Column 'column_name' cannot be null while updating the database, even when column_name had been assigned a valid nonnull string. (Bug #37649)

  • The SQLDriverConnect method truncated the OutputConnectionString parameter to 52 characters. (Bug #37278)

  • The connection string option Enable Auto-reconnect did not work. When the connection failed, it could not be restored, and the errors generated were the same as if the option had not been selected. (Bug #37179)

  • Insertion of data into a LONGTEXT table field did not work. If such an attempt was made the corresponding field would be found to be empty on examination, or contain random characters. (Bug #36071)

  • No result record was returned for SQLGetTypeInfo for the TIMESTAMP data type. An application would receive the result return code 100 (SQL_NO_DATA_FOUND). (Bug #30626)

  • It was not possible to use Connector/ODBC to connect to a server using SSL. The following error was generated:

    Runtime error '-2147467259 (80004005)':
    
    [MySQL][ODBC 3.51 Driver]SSL connection error.

    (Bug #29955)

  • When the recordSet.Update function was called to update an adLongVarChar field, the field was updated but the recordset was immediately lost. This happened with driver cursors, whether the cursor was opened in optimistic or pessimistic mode.

    When the next update was called the test code would exit with the following error:

    -2147467259 : Query-based update failed because the row to update could not be found.

    (Bug #26950)

  • Microsoft Access was not able to read BIGINT values properly from a table with just two columns of type BIGINT and VARCHAR. #DELETE appeared instead of the correct values. (Bug #17679)