<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    all gone

    all gone

    Qt 4下連接MySQL數據庫

    前天剛裝了個Qt4for windows,發現安裝的時候MySQL等數據庫插件都沒有安裝,像Qt X11版一樣,都需要自己安裝這些插件。

    在Qt的安裝目錄C:\Qt4.1.2\下,有個src目錄,進入plugins\sqldrivers\mysql,可以看到兩個文件,main.cpp和mysql.pro,很顯然要用qmake來完成編譯、生成目標。

    編譯前,首先保證依賴的MySQL頭文件和庫文件正確。首先MySQL安裝目錄下的include中的所有文件拷到qmake時能找到的目錄下,接著從lib/opt目錄下拷出libmysql.a,其實lib/opt下只有libmysql.lib和libmysql.dll,從網上搜了一下找到一個方法從libmysql.dll生成libmysql.a:

    1 、安裝好MySQL (如果不愿意安裝,找個libmySQL.dll文件也可以)

    2、下載Pexports工具

    3、轉換操作: pexports libmysql.dll > libmysql.def

    4、使用MinGW的 dlltool轉換成為libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k

    5、嘗試是否成功:
    將生成的libmysql.a 拷到qmake的lib搜索路徑下后在plugins\sqldrivers\mysql目錄下做:
    qmake -project
    qmake
    make

    如果再出現象mysql_connect@xx (xx是數字)的錯誤提示。就執行第6步。

    6、修改libmysql.def文件,給mysql_connect加上@xx,即mysql_connect@xx

    7、重做第4步

    8、然后嘗試第5步,如果還是出現錯誤提示。就作第6步。一直到沒有錯誤為止。

    最后C:\Qt4.1.2\plugins\sqldrivers下將會生成需要的libqsqlmysql.a和qsqlmysql.dll。

    找了一個測試文件,通過。
    #include?<QtSql>?
    #include?<QtGui>?


    bool?createConnection(){?
    QSqlDatabase?db?
    =?QSqlDatabase::addDatabase("QMYSQL");?
    db.setHostName("localhost");?
    db.setDatabaseName("test");?
    db.setUserName("test");?
    db.setPassword("");?

    if(!db.open()){?
    QMessageBox::critical(
    0,?QObject::tr("Database?Error"),?
    ??????????????????????????????db.lastError().text())
    ;?

    return?false
    ;?
    }?

    QSqlQuery?query
    ;?
    //query.exec("insert?into?book?values(?3,?'title',?'author')?");?
    query.exec("select?title?,?author?from?book?");?

    while?(query.next())?{?


    ????QString?title?
    =?query.value(0).toString();?
    ????QString?author?=?query.value(1).toString();?

    QMessageBox::critical(
    0,?title,author);?
    ????
    }?


    return?true
    ;?
    }?



    int?main(int?argc
    ,char**?argv){?

    QApplication?app(argc
    ,?argv);?
    ????if?(!createConnection()){?

    return?
    1;?
    }?
    ????????

    ????return?app.exec()
    ;?


    }?

    posted on 2006-08-28 20:57 all gone 閱讀(2740) 評論(0)  編輯  收藏 所屬分類: C & C++


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产日韩女人aaaaaa毛片在线 | 国产亚洲一区二区手机在线观看| 美女被吸屁股免费网站| 国产免费一区二区三区VR| 成人亚洲国产精品久久| 免费大黄网站在线观看| 一级A毛片免费观看久久精品| 亚洲AⅤ无码一区二区三区在线 | 国产产在线精品亚洲AAVV| 国产美女a做受大片免费| 青青视频免费在线| 亚洲区小说区图片区| 99久久99这里只有免费的精品 | 亚洲精品综合久久中文字幕| 亚洲国产精品免费在线观看| 亚洲一区欧洲一区| 日本a级片免费看| 男女交性无遮挡免费视频| 亚洲中文字幕无码不卡电影| 国产精品免费观看调教网| 亚洲性69影院在线观看| 永久中文字幕免费视频网站| 无码免费又爽又高潮喷水的视频| 久久久久国产亚洲AV麻豆| 最近免费中文字幕大全高清大全1| 亚洲人成电影在线观看网| 在线观看91精品国产不卡免费| 免费人成动漫在线播放r18| 亚洲精品美女久久777777| 国产精品视频免费观看| 羞羞视频免费观看| 日本红怡院亚洲红怡院最新| 99久久99这里只有免费费精品| 久久亚洲精品成人无码| 在线亚洲97se亚洲综合在线| 69av免费视频| 全黄A免费一级毛片| 亚洲综合久久成人69| 免费A级毛片在线播放不收费| 日本在线看片免费人成视频1000| 亚洲日本一线产区和二线|