成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在linux下QT連接Mysql數(shù)據(jù)庫

移動開發(fā)
本文介紹的是在linux下QT連接Mysql數(shù)據(jù)庫,MySQL數(shù)據(jù)庫是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。

之前用 C 語言連了mysql數(shù)據(jù)庫,因為項目畢竟是用QT包裝的,還需要在qt的界面里顯示,所以這一次就用QT來連一下mysql

首先說一下我的電腦是ubuntu10.10;之前安裝了QTlinux全部套件(包括QT creator),也安裝了嵌入式qt的那三個編譯環(huán)境(X11,X86,ARM),但是這一次我只用QT creatot里的qmake編譯(以為之前編譯完那三個環(huán)境后,我就把編譯文件夾全刪了)。

首先,安裝mysql客戶端(mysql-devel),和C語言連接一樣,執(zhí)行命令:

  1. sudo apt-get install libmysqlclient-dev   
  2. 或   
  3. sudo apt-get install libmysqlclient15-dev  

因為我之前安裝過,所以這一步就省略了。

然后,連接linux數(shù)據(jù)庫肯定要有驅(qū)動,這個在qt的源碼里就有:進入文件夾:

  1. cd   QTDIR/src/plugins/sqldrivers/mysql                      //這就是qt存放mysql驅(qū)動源碼的目錄 

目錄里應(yīng)該有main.cpp 和moc_qsql_mysql.cpp兩個文件

執(zhí)行命令:

  1. qmake  -project  //生成mysql.pro文件,可能這一步會說你沒有權(quán)限,那么chmod給它權(quán)限就可以了  
  2. qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro   
  3. /usr/include/mysql   // mysql所有頭文件所在的位置,mysql.h就在此處  
  4. /usr/lib/mysql            //mysql庫的位置 

然后,執(zhí)行命令:

  1. make  
  2. sudo make install 

此時,在QTDIR/src/plugins/sqldrivers/mysql  這個目錄下,就生成了一個文件:libqsqlmysql.so;把它拷貝到QTDIR/plugins/sqldrivers, 目錄下面;

現(xiàn)在開始編程:隨便建工程:加入如下代碼:

  1. #include <QtSql>    
  2. #include <QMessageBox>    
  3. #include <QTextStream>    
  4. QTextStream out(stdout);    
  5. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    
  6. db.setHostName("localhost");    
  7. db.setDatabaseName("test");    
  8. db.setUserName("root");    
  9. db.setPassword("xxxxxx");    
  10. if(!db.open())    
  11. {    
  12.  QMessageBox::critical(0,QObject::tr("Database Error"),db.lastError().text());    
  13. return a.exec();    
  14. }    
  15. QSqlQuery query;    
  16. query.exec("SELECT * FROM t_homedata");    
  17. while(query.next())    
  18. {    
  19. QString id = query.value(0).toString();    
  20.  QString type = query.value(1).toString();    
  21. QString data = query.value(2).toString();    
  22. out << id << ", " << type << ", " << data <<endl;    
  23. }   

注意,這段代碼,是我加入到工程中的,恩,我就放在main.cpp里;#include <QtSql>這個是必須的;#include <QTextStream>這個是用來進行控制臺打印輸出的,我的數(shù)據(jù)庫名為test,中間有一個表叫t_homedata,表里有三個varchar型字段:其打印結(jié)果為:

  1. 100010, 23, 32.45  
  2. 100011, 12, 99  
  3. 100012, 11, 35.10 

注意,再進行工程的編譯和運行之前(恩,因為我的電腦里實際有4個qt編譯環(huán)境,所以還需要再Qt creator的project選項里設(shè)置該項目的編譯器,我的編譯器設(shè)置為qt-opensource,即Qt  creator自帶的,因為我之前所進行的mysql驅(qū)動編譯也都是再Qt creator的安裝目錄里進行的),一定別忘了在工程的.pro文件里加上下面一行:

  1. QT  += sql 

Qt 幫助文檔里就是這么說的:

  1. To include the definitions of the module's classes, use the following directive:  
  2.  #include <QtSql> 
  3. To link against the module, add this line to your qmake .pro file:  
  4.  QT += sql  
  5. define DRIVER       "QMYSQL3"  /* see the Qt SQL documentation for a list of available drivers */  
  6.  define DATABASE     ":dehua:" /* the name of your database */  
  7.  define USER         "root"   /* user name with appropriate rights */  
  8.  define PASSWORD     "password"   /* password for USER */  
  9.  define HOST         "http://192.168.10.14" /* host on which the database is running */  
  10.  bool ServerInfo::connMysql(int csID, QString msg)  
  11.  {  
  12.    MYSQL mysql;  
  13.    char host[32]="localhost";  
  14.    char user[32]="root";  
  15.    char passwd[32]="password";  
  16.    char dbname[32]="dehua";   
  17.    QString sql;  
  18.    
  19.    if( mysql_init(&mysql) == NULL ) /*初始化數(shù)據(jù)結(jié)構(gòu)*/  
  20.    {  
  21.      syslog(LOG_USER|LOG_INFO,"inital mysql handle error\n");  
  22.      return FALSE;  
  23.    }  
  24.    if(mysql_real_connect(&mysql,host,user,passwd,dbname,0,NULL,0) == NULL) /*連接數(shù)據(jù)庫*/  
  25.    {  
  26.      syslog(LOG_USER|LOG_INFO, "Failed to connect to database: Error: %s\n",mysql_error(&mysql));  
  27.      return FALSE;  
  28.    }  
  29.    
  30.     msg.replace("'"," ");        //去掉單引號  
  31.     sql=QString("insert into socRec(socketID,message) values(%1,'%2')")  
  32.                                     .arg(csID)  
  33.                                  .arg(msg); /*構(gòu)造SQL語句*/  
  34.     qWarning(sql);  
  35.    if(mysql_query(&mysql,sql) != 0) /*執(zhí)行SQL語句,進行檢索數(shù)據(jù)*/  
  36.    { /*執(zhí)行SQL語句出錯*/  
  37.      syslog(LOG_USER|LOG_INFO, "select ps_info Error: %s\n",mysql_error(&mysql));  
  38.      qWarning("false");  
  39.    }  
  40.    else  
  41.    {  
  42.      qWarning("true");  
  43.    }  
  44.  } 

 【編輯推薦】

Qt數(shù)據(jù)庫之添加MySQL驅(qū)動插件

使用TOMCAT連接池連接MySQL

C++連接mysql數(shù)據(jù)庫的兩種方法

如何安全的遠程使用MySQL GUI工具

解析Visual Studio 2005中QT配置使用

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-06-11 14:46:13

MySQL數(shù)據(jù)庫

2011-07-05 09:35:52

Ubuntu Qt Mysql

2010-06-04 18:12:17

MySQL 數(shù)據(jù)庫啟動

2010-10-26 15:00:36

oracle遠程連接數(shù)

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫 SQLite

2011-07-05 10:03:00

Qt MYSQL 數(shù)據(jù)庫

2011-08-30 13:59:06

QTMysql數(shù)據(jù)庫

2019-12-17 08:39:21

Linuxwindowsoracle

2010-06-04 17:49:46

連接MySQL數(shù)據(jù)庫

2010-06-10 14:49:56

MySQL鏡像數(shù)據(jù)庫

2011-06-21 15:31:04

Qt 數(shù)據(jù)庫 SQL

2011-06-21 15:11:04

QT 數(shù)據(jù)庫

2011-04-07 15:02:02

LinuxMySQL數(shù)據(jù)庫

2010-05-13 17:41:58

2010-05-14 09:57:25

MySQL數(shù)據(jù)庫

2023-09-21 09:31:24

MySQL數(shù)據(jù)庫

2011-07-05 09:54:04

2010-05-14 16:41:58

MySQL鏡像數(shù)據(jù)庫

2013-05-24 13:24:46

Mysql數(shù)據(jù)庫自動備份

2010-05-11 11:53:57

Mysql show命
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本久久久一区二区三区 | 中文字幕观看 | 国产不卡在线观看 | 蜜桃特黄a∨片免费观看 | 久久精品国产亚洲一区二区三区 | 欧美日韩在线观看一区 | 色在线免费视频 | 中文字幕 国产 | 国产婷婷色一区二区三区 | 日韩一级黄色片 | 亚洲国产区 | 日日日操| 特黄色一级毛片 | 欧美在线看片 | 欧美日韩一区在线观看 | 在线观看黄视频 | 国产色婷婷精品综合在线播放 | 狠狠操电影 | 日本不卡一区 | 男女免费观看在线爽爽爽视频 | 国产午夜精品久久 | 成人免费视频在线观看 | 亚洲欧美一区二区三区1000 | 国产激情网 | 亚洲一区成人 | 久久久久久国产精品 | 精品亚洲一区二区 | 91精品无人区卡一卡二卡三 | 午夜无码国产理论在线 | 久久精品亚洲欧美日韩精品中文字幕 | 最近日韩中文字幕 | 久久久99精品免费观看 | 天天想天天干 | 亚洲91精品| 日韩国产欧美在线观看 | 日韩久久久一区二区 | 99久久精品免费看国产四区 | 色综合天天天天做夜夜夜夜做 | 三级成人在线 | 欧美视频第二页 | 在线观看中文字幕 |