Documentation Home
MySQL 连接器/C++ 发行说明  / MySQL 连接器/C++ 1.1 中的更改  /  MySQL Connector/C++ 1.1.5 的变化(2014-11-26,全面上市)

MySQL Connector/C++ 1.1.5 的变化(2014-11-26,全面上市)

添加或更改的功能

  • MySQL_Prepared_Statement::getMoreResults() 功能已经实现,因此现在可以使用准备好的语句获取多个结果集。(漏洞 #19147677)

  • Connector/C++ 现在支持defaultAuthOPT_CONNECT_ATTR_DELETEOPT_CONNECT_ATTR_RESETOPT_LOCAL_INFILEpluginDirreadDefaultFilereadDefaultGroupcharsetDir连接选项,它们对应于C API 函数 的MYSQL_DEFAULT_AUTHMYSQL_OPT_CONNECT_ATTR_DELETEMYSQL_OPT_CONNECT_ATTR_RESETMYSQL_OPT_LOCAL_INFILEMYSQL_PLUGIN_DIRMYSQL_READ_DEFAULT_FILEMYSQL_READ_DEFAULT_GROUPMYSQL_SET_CHARSET_DIR选项 。mysql_options()

    也可以使用 MySQL_Statement::getQueryTimeout()MySQL_Statement::setQueryTimeout()方法获取和设置语句执行时间限制。(错误#73665,错误#19479950)

  • 添加了这些方法: Connection::isValid()检查连接是否存在, Connection::reconnect()如果连接断开则重新连接。(缺陷 #65640,缺陷 #14207722)

  • Boost 依赖项已从连接器/C++ API 标头中删除。这些标头使用的boost::variant 类型,使得在没有安装 Boost 的情况下无法使用 Connector/C++ 二进制文件。

修正错误

  • 对于从 MSI 包安装, variant.h文件 夹version_info.h中缺少 。include/cppconn(漏洞#19973637)

  • 对于几个有效的客户端选项, getClientOption()没有返回值。(缺陷号 19940314)

  • OPT_CONNECT_ATTR_ADD参数添加到选项列表时发生内存泄漏。(漏洞#19938970)

  • getClientOption()如果在连接时未设置指定选项,则引发断言。(漏洞#19938922)

  • 纠正了几个元数据缺陷:

    • getTables()TableType=VIEW和 时没有返回正确的结果metadataUseInfoSchema=false

    • getColumns()时未返回列信息 metadataUseInfoSchema=TRUE

    • getColumnName()返回显示名称而不是实际的列名称。

    • getProcedures()时返回语法错误metadataUseInfoSchema=false

    (错误#19505348、错误#19147897、错误#19244736、错误#19505421)

  • 全局变量在 Connector/C++ 代码中的LOCALHOST两个位置被引用,这可能会导致 double-free 损坏错误。(错误#74616,错误#19910311)

  • driver/version_info.h(包含版本宏)未包含在已安装的头文件中。(错误#73795,错误#19553971)

  • 纠正了几个CMake问题:

    • CMake可能会错误配置链接标志。

    • CMake没有 选项 libmysqlclient路径 MYSQL_LIB_DIR

    • 对于测试套件编译,CMake没有libmysqlclient从用户指定的路径中获取,即使MYSQL_LIB_DIR 给出DYNLOAD_MYSQL_LIB了。

    (错误#73427、错误#19315635、错误#19370844、错误#19940663)

  • Connector/C++ 每次 isClosed()在 a 中调用时 都会发出一个 ping 命令Connection,而不是仅仅检查是否 close()较早调用过或在较早的操作中发生致命错误时。(缺陷 #69785,缺陷 #17186530)

  • 结果集类型设置为 TYPE_FORWARD_ONLYStatement::executeQuery()几乎立即返回,但如果连接丢失MySQL_ResultSet::next()MySQL_Prepared_ResultSet::next()返回 false 而不是抛出异常,从而无法区分连接丢失与结果集的正常结束。 MySQL_ResultSet::next()现在 MySQL_Prepared_ResultSet::next()在连接丢失时抛出异常。(漏洞 #69031,漏洞 #18886278)

  • Connection对象与它们生成的对象共享内部状态 Statement,防止连接关闭,除非Statement对象先被销毁。现在通过调用对象析构函数关闭与服务器的连接Connection::close()Connection而无需显式销毁语句对象。