亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1501 | 回復(fù): 0
打印 上一主題 下一主題

WIndows下QT編譯MySQL數(shù)據(jù)庫的開始 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-21 08:42 |只看該作者 |倒序瀏覽
  早出晚歸,從中午到下午吃飯,終于把類似QQ的登錄界面基本畫完了,當(dāng)然對于高手來說很簡單了。然后我就準(zhǔn)備與數(shù)據(jù)庫連接,實現(xiàn)登錄功能。至于那個帳號選擇,和相應(yīng)的頭像,不打算用數(shù)據(jù)庫,因為太浪費了,我想的是當(dāng)?shù)谝淮芜B接時,從數(shù)據(jù)庫里面肯定會有相應(yīng)頭像在里面,那么我就從本地copy過來,然后放在本地文件,這邊以后帳號選擇的時候,就可以直接從本地同步頭像。初步是這樣設(shè)想。
  數(shù)據(jù)庫連接也是個大問題,剛開始覺得連接Mysql數(shù)據(jù)庫跟以前用java的eclipse一樣簡單,加載下驅(qū)動包就行了。沒想到要自己編譯,而且還有很多奇怪的問題出現(xiàn)。上網(wǎng)找資料的時候,說法有時候不太管用。自己琢磨了很久,終于連上了,實現(xiàn)了查詢。還是高興的。用sqlite的時候就是能連接上,但是始終查詢沒反映,所以糾結(jié)了老長時間,最終舍棄了。不是自己意志力不夠,有時候還是要換下思路。
  下面開始說下自己在Windows7下編譯,連接到查詢的整個過程:
   1.這是我的初始界面(頭像更新以后再做)
 2.我用登錄按鈕來做連接測試,連接成功注冊帳號就改為ok,查詢結(jié)果放在第一個QLineEdit里面。
下面開始,這樣以后我不會了再回來參考下:
  1.下載mingw-utils-0.3,百度里面太少了,你去google,很多。(這里我要說明一點就是。很多人在安裝MySQL的時候不是完全安裝的話就沒有opt那個目錄,更別說libmysql.lib這個文件了,所以你要完全安裝,把原來的卸載掉,或者再裝個其它版本,不沖突的。)
  2.將其解壓,找到bin目錄下的reimp.exe,然后拷貝到C:\MinGW\bin目錄下,當(dāng)然你的MinGW裝載哪你就相應(yīng)拷貝到那個bin目錄下。
  3.由于后面要用到reimp命令,所以把MinGW的bin目錄加載到classpath中,如果沒有就新建系統(tǒng)環(huán)境變量classpath,我的是windows7,如下圖:
    
   4.進入C:\Program Files\MySQL\MySQL Server 5.0\lib\opt目錄,因為我的MySQL是裝在這的,這要看你裝哪了。進入之后可以看到有l(wèi)ibmysql.lib和其它相關(guān)文件。
   然后執(zhí)行如下命令:(dos)
    1>C:\Program Files\MySQL\MySQL Server 5.0\lib\opt>reimp -d libmysql.lib
    2>C:\Program Files\MySQL\MySQL Server 5.0\lib\opt>dlltool -k -d libmysql.def -l libmysql.a
    完成之后那個libmysql.a文件就誕生了。這是所需的重要文件。
   5.然后我就按照網(wǎng)上的一些說法。
   然后轉(zhuǎn)到Qt的目錄下(我的為C:\Qt\4.3.2\src\plugins\sqldrivers\mysql).

   運行如下命令:

1>qmake -o Makefile "INCLUDEPATH+=D:\MySQL\lib\include" "LIBS+=D:\MySQL\lib\lib\opt\LIBMYSQL.a" mysql.pro

2>mingw32-make

 發(fā)現(xiàn)錯誤了。不太清楚怎么回事(應(yīng)該可以,好好試試)。但是

   這樣:在mysql.pro(在C:\Qt\4.3.2\src\plugins\sqldrivers\mysql下面)中加入:

         INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 5.1\include"

         LIBS+="C:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libmysql.lib"

         保存并退出

       

   6.按照下圖所以執(zhí)行命令:如果你的qmake不能用,那把qt目錄下的bin目錄加入到PATH中去,我是這樣做的。不知道有沒有科學(xué)性。呵呵

     

  注意目錄的進入就好了。然后兩條命令就行了。編譯個半分鐘吧。

 7.然后你就會發(fā)現(xiàn)在C :\Qt\4.3.4\qt\plugins\sqldrivers下多了四個文件:當(dāng)然看你安裝qt的版本

                    qsqlmysql4.dll
                    libqsqlmysql4.a
                    qsqlmysqld4.dll
                    libqsqlmysqld4.a
   這樣基本就沒啥問題了。記得打開mysql,它自帶了test數(shù)據(jù)庫,可以用它做測試,順便我建立了一張表格:
     

那么就開始測試吧。代碼如下:(我的是eclipse配置的qt環(huán)境)
        QSqlDatabase TB = QSqlDatabase::addDatabase("QMYSQL");// becomes the new default conne
TB.setHostName("127.0.0.1");//主機名
TB.setDatabaseName("test");//數(shù)據(jù)庫名
TB.setPort(3306);//端口號
TB.setUserName("root");//用戶名
TB.setPassword("123");//密碼
if(TB.open())
m_r_acount->setText("OK");
QSqlQuery query(TB);
QString result[100];
int i = 0;
if(TB.open()){
m_r_acount->setText("OK");
   bool check = query.exec("SELECT * FROM tt");
if(!query.isActive())
m_r_acount->setText("HH");
if (!check)
{
m_r_acount->setText("FAIL");
TB.close();
}
while(query.next())
{
result[i] = query.value(i).toString();
i++;
}
m_acount->setText(result[1]);
query.clear();
TB.close();
}
else
m_r_acount->setText("NO");
最后搞定了。
 
唉,一開始用sqlite就不爽偶的很。最后還是改回這個,但是早晚都會用sqlite,android,很多都用的。騰訊也用。所以早晚搞定它,F(xiàn)在這樣吧。其實還有很多不同的編譯方法,比如用qt直接編譯。
 
  
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP