• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    西西首頁 常用軟件 軟件下載 安卓軟件 游戲下載 安卓游戲 MAC應用 驅動下載 安卓電視
    系統工具網絡工具媒體工具圖形圖像聊天工具應用軟件編程開發手機軟件安卓應用電腦安全字體素材

    mysql connector c

    8.0.11 官方最新版 【x86\x64】
    • mysql connector c8.0.11 官方最新版 【x86\x64】
    • 軟件大小:41.5M
    • 更新時間:2018-05-17 10:46
    • 軟件語言:中文
    • 軟件廠商:
    • 軟件類別:國產軟件 / 免費軟件 / 數據庫類
    • 軟件等級:3級
    • 應用平臺:WinAll, Win7
    • 官方網站:http://www.pirinnaturalssoapandspa.com
    好評:50%
    壞評:50%

    裝機必備軟件

    軟件介紹

    MySQL Connector/ODBC 是 MySQL 數據庫的官方C++驅動程序。

    MySQL Connector/C++ 1.1.5 發布,此版本的二進制版本需要使用 Boost 1.54.0 編譯。

    根據自己系統平臺下載相應的版本。文件夾名字太長,將“mysql-connector-c++-noinstall-1.0.5-win32”改為“mysql”。

    MySQL Connector/ODBC配置方法:

    下面要配置vs2008的環境。

    1. 項目屬性頁->C/C++->General->Additional Include Directories。將mysql\include目錄添加進去。

    2. 項目屬性頁->Linker->General->Additional Library Directories。將mysql\lib與$MySQL\bin目錄添加進去。

    3. 項目屬性頁->Linker->Input->Additional Dependencies。添加這兩項mysqlcppconn.lib,mysqlcppconn-static.lib(mysql\lib目錄下的兩個.lib文件)

    4. 將mysql\lib下的mysqlcppconn.dll文件與$MySQL\bin\libmySQL.dll復制到windows\system32文件夾下。

    環境配置完畢。

    數據庫使用:

    在連接數據庫之前,先建立一張表。 (其實這些可以在代碼中完成,我這樣是為了讓測試代碼盡可能簡練易查錯)

    打開控制臺,輸入mysql -u root -p,輸入密碼。

    查看當前已有的數據庫。(SQL語句末尾加上';'表示立即執行當前語句。)
    mysql> show databases;

    創建數據庫
    mysql> create database test;

    使用數據庫(這句不能加分號)
    mysql> use test

    查看已有的表
    mysql> show tables;

    創建表
    mysql> create table testuser ( id INT, name CHAR(20));

    插入數據
    mysql> insert into testuser(id, name) values(1001, 'google');
    mysql> insert into testuser(id, name) values(1002, 'kingsoft');
    mysql> insert into testuser(id, name) values(1003, 'firefox');

    現在在C++中查詢這些數據

    #include "stdafx.h"  

    #include <mysql_connection.h>  

    #include <mysql_driver.h>  

    #include <statement.h>  

    using namespace sql;  

    using namespace std;  

    void RunConnectMySQL()   

    {  

        mysql::MySQL_Driver *driver;  

        Connection *con;  

        Statement *state;  

        ResultSet *result;  

        // 初始化驅動  

        driver = sql::mysql::get_mysql_driver_instance();  

        // 建立鏈接  

        con = driver->connect("tcp://127.0.0.1:3306", "root", "123");  

        state = con->createStatement();  

        state->execute("use test");  

        // 查詢  

        result = state->executeQuery("select * from testuser where id < 1002");  

        // 輸出查詢  

        while(result->next())  

        {  

            int id = result->getInt("ID");  

            string name = result->getString("name");  

            cout << id << " : " << name << endl;  

        }  

        delete state;  

        delete con;  

    }  

    int _tmain(int argc, _TCHAR* argv[])  

    {  

        RunConnectMySQL();  

        getchar();  

        return 0;  

    }  

    接口實例:

    bool CommonService::......(JSONNode& in, JSONNode& out)

    {

        /*=====校驗json傳入參數=====*/

        ..........

     

        /*=====解析json傳入參數,得到安裝碼或者id, 安裝時間, 硬盤序列號, ip,mac=====*/

     

        ..........

     

        /*=====通過安裝碼找到數據庫中的對應記錄寫入傳入的值=====*/

        /********數據庫操作**********/

        //1.得到數據庫連接

        Connection* con = G<ConnectionPool>().GetConnection();

        if (con == NULL)

        {

            LOG4CXX_ERROR(g_logger, "不能得到數據庫連接");

            out.push_back(JSONNode(RESULT, ACTION_FALSE));

            out.push_back(JSONNode(ERROR_MESSAGE, "不能得到數據庫連接"));

            return false;

        }

     

        int ret = 1;

        PreparedStatement* prep_stmt = NULL;

        ResultSet* res = NULL;

     

        try

        {

            con->setSchema(G<ConnectionPool>().GetDBName().c_str());

     

            //執行sql改變安裝狀態

            std::string sql_statement = "update tb_host set reg_date=?, sn=?, ip=?, mac=?, state=?, sync_state=? where reg_code =? and state=?";//要執行的sql語句

            //事務處理

            con->setAutoCommit(0);

            prep_stmt = con->prepareStatement(sql_statement.c_str());

     

            prep_stmt->setString(1, install_time.c_str());

            prep_stmt->setString(2, harddrive_sn.c_str());

            prep_stmt->setString(3, ip_address.c_str());

            prep_stmt->setString(4, mac_address.c_str());

            prep_stmt->setInt(5, HAS_INSTALL);

            prep_stmt->setInt(6, HAS_SYNC);

            prep_stmt->setString(7, install_code.c_str());

            prep_stmt->setInt(8, NO_INSTALL);

     

            if(prep_stmt->executeUpdate() == 0)

            {

                ret = 2;

                LOG4CXX_INFO(g_logger, ".....");

                out.push_back(JSONNode(ERROR_MESSAGE, "....."));

                goto Finally_handle;

            }

            //調用賦默認策略存儲過程

            std::string procedure = "CALL updateHostPolicyByModHost(?,?, @ret, @msg)";

            prep_stmt = con->prepareStatement(procedure.c_str());

            prep_stmt->setString(1, install_code.c_str());

            prep_stmt->setInt(2, 0);

            prep_stmt->execute();

     

            std::string query = "select @ret AS ret,@msg AS msg";

            prep_stmt = con->prepareStatement(query.c_str());

            res = prep_stmt->executeQuery();

            while(res->next())

            {

                if(res->getInt("ret") != 0)

                {

                    LOG4CXX_ERROR(g_logger, "....." << res->getString("msg").c_str() << res->getInt("ret"));

                    out.push_back(JSONNode(ERROR_MESSAGE, "....."));

                    goto Finally_handle;

                }

            }

            con ->commit();

     

        }

        catch (SQLException& e)

        {

            try

            {

                con->rollback();

            }

            catch (SQLException& e)

            {

                ret = 0;

                LOG4CXX_ERROR(g_logger, "數據庫異常" << e.what());

                goto Finally_handle;

            }

     

            ret = 0;

            LOG4CXX_ERROR(g_logger, "數據庫異常" << e.what());

            out.push_back(JSONNode(ERROR_MESSAGE, e.what()));

            goto Finally_handle;

        }

        catch (...)

        {

            ret = 0;

            LOG4CXX_ERROR(g_logger, "其他錯誤");

            out.push_back(JSONNode(ERROR_MESSAGE, "其他錯誤"));

            goto Finally_handle;

        }

     

        Finally_handle:

        DestorySql(res, prep_stmt);

        //將連接釋放到連接池

        G<ConnectionPool>().ReleaseConnection(con);

     

        if (ret == 1)

        {

            out.push_back(JSONNode(RESULT, ACTION_SUCCESS));

            return true;

        }

        else if (ret == 2)

        {

            out.push_back(JSONNode(RESULT, ACTION_FALSE));

            return true;

        }

        else

        {

            out.push_back(JSONNode(RESULT, ACTION_FALSE));

            return false;

        }

     

    }

     

    /************************************************************************/

    /* 銷毀數據庫記錄集資源                                                 */

    /************************************************************************/

    void CommonService::DestorySql(ResultSet* res, PreparedStatement* prep_stmt)

    {

        if (res != NULL)

        {

            try

            {

                res ->close();

            }

            catch(SQLException& e)

            {

                LOG4CXX_ERROR(g_logger, "數據庫異常" << e.what());

            }

            delete res;

            res = NULL;

        }

        if (prep_stmt != NULL) {

            try

            {

                prep_stmt->close();

            }

            catch(SQLException& e)

            {

                LOG4CXX_ERROR(g_logger, "數據庫異常" << e.what());

            }

            delete prep_stmt;

            prep_stmt = NULL;

        }

    }

    更新:

    新增的特性和改進

    Connector/C++ 支持以下的連接選項:sslVerify (boolean),sslCRL (string) 和sslCRLPath (string)。(Bug #18461451)

    Connector/C++ 新增函數提供模式,表和列的字符集和結果集的校對元數據 :(Bug #72698, Bug #18803345)

    ResultSet * DatabaseMetaData::getSchemaCollation(const sql::SQLString& catalog, const sql::SQLString&schemaPattern)

    ResultSet * DatabaseMetaData::getSchemaCharset(const sql::SQLString& catalog, const sql::SQLString& schemaPattern)

    ResultSet * DatabaseMetaData::getTableCollation(const sql::SQLString& catalog, const sql::SQLString&schemaPattern,const sql::SQLString&tableNamePattern)

    ResultSet * DatabaseMetaData::getTableCharset(const sql::SQLString& catalog, const sql::SQLString&schemaPattern, const sql::SQLString&tableNamePattern)

    SQLString ResultSetMetaData::getColumnCollation(unsigned int columnIndex)

    SQLString ResultSetMetaData::getColumnCharset(unsigned int columnIndex)

    Connector/C++ 支持 MYSQL_OPT_CONNECT_ATTR_ADD 選項,能接收一個 std::map 參數。(Bug #72697, Bug #18803313)

    Connector/C++ 支持一個 useLegacyAuth  連接選項 (Bug #69492, Bug #16970753)

    Connector/C++ 編譯和鏈接到 Connector/C 6.1.5 而不是 libmysql

    Bugs 修復

    MySQL_ResultSetMetaData::getColumnTypeName()returned UNKNOWN for LONG_BLOB fields.  (Bug #72700, Bug #18803414)

    Connector/C++ version-information methods have been revised to return the correct values. (Bug #66975, Bug #14680878)

    Definitions for character sets and collations were added  (utf8mb4 in particular).  (Bug #71606, Bug #18193771)

    軟件截圖

    mysql connector c 8.0.11 官方最新版 【x86\x64】

      熱門評論

      最新評論

      發表評論 查看所有評論(0)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)

      下載幫助下載幫助西西破解版軟件均來自互聯網, 如有侵犯您的版權, 請與我們聯系。

      TOP
      軟件下載
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>