自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Qt數(shù)據(jù)庫(kù)的鏈接與如何使用SQL

移動(dòng)開發(fā)
Qt數(shù)據(jù)庫(kù)的鏈接與如何使用SQL是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT中數(shù)據(jù)庫(kù)的鏈接和SQL如何來使用,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

Qt數(shù)據(jù)庫(kù)的鏈接與如何使用SQL是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT數(shù)據(jù)庫(kù)的鏈接和SQL如何來使用,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。

一直沒接觸數(shù)據(jù)庫(kù),前一陣突然有機(jī)會(huì)用了用MySQL,順手把SQL語法學(xué)了一遍,學(xué)完了手癢癢,一想Qt可以結(jié)合數(shù)據(jù)庫(kù),就順便試了下Qt鏈接數(shù)據(jù)庫(kù)與使用SQL。SQL部分就不說了,Qt先說鏈接部分。

1、先做數(shù)據(jù)庫(kù)驅(qū)動(dòng)

現(xiàn)在Qt SDk for windows里面已經(jīng)有ODBC的驅(qū)動(dòng)了,我當(dāng)時(shí)現(xiàn)做了個(gè)MySQL的驅(qū)動(dòng)(其實(shí)我當(dāng)時(shí)是沒看見有ODBC),因?yàn)槲沂褂肕inGW,所以先使用remip.exe把MySQL/opt里面的 LibMySQL.lib轉(zhuǎn)成.a(使用MSVC的就可以跳過這步了)。然后再進(jìn)qt/src/plugins/sqldriver/mysql 編譯出驅(qū)動(dòng)

  1. QMAKE -o Makefile "INCLUDEPATH+=MYSQL/INCLUDE" "LIBS+=MYSQL/LIB/OPT/libmysql.a" mysql.pro 

注意下qmake的參數(shù)就行了 再make, 這部分網(wǎng)上說的很詳細(xì),

2、Qt使用SQL

主要是下面的幾個(gè)類

 QSqlDatabase 建立于數(shù)據(jù)庫(kù)的鏈接
 
 QSqlQuery 用于執(zhí)行SQL語句
 
 QSqlTableModel 結(jié)合QTableView可以輸出數(shù)據(jù)庫(kù)的表

貼下我寫的簡(jiǎn)單Demo

  1. QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL"/*"QODBC"*/); // becomes the new default connection    
  2. db.setUserName("root");//用戶名    
  3. db.setPassword("password");//密碼    
  4. db.setHostName("localhost");    
  5. db.setDatabaseName("test");//數(shù)據(jù)庫(kù)名    
  6. db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");//使用SSL    
  7. db.setPort(3306);//端口    
  8. if(db.open()){    
  9.     qDebug()<<"open/n"<<db.lastError().driverText()<<"/n";    
  10. }    
  11. else{    
  12.     qDebug()<<"open faile/n";    
  13. }    
  14. QSqlQuery query;//用于執(zhí)行SQL語言    
  15.  query.exec("show databases");//很方便的    
  16.  while (query.next()) {    
  17.      qDebug()<<query.value(0).toString()<<"/n";    
  18. }    
  19.  
  20. QSqlTableModel *model = new QSqlTableModel;//間接將數(shù)據(jù)庫(kù)表裝入QTableView    
  21. model->setTable("people");   //表名    
  22. model->setEditStrategy(QSqlTableModel::OnManualSubmit);    
  23. model->select();    
  24. //model->removeColumn(0); // don't show the ID    
  25. //model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));    
  26. model->setHeaderData(0, Qt::Horizontal, tr("Name"));    
  27. model->setHeaderData(1, Qt::Horizontal, tr("Age"));    
  28. model->setHeaderData(2, Qt::Horizontal, tr("Sex"));    
  29.  
  30. QTableView *view = new QTableView(this);    
  31. view->setModel(model);    
  32. db.close();    
  33. QGridLayout * gl=new QGridLayout();    
  34. gl->addWidget(view);    
  35. this->setLayout(gl);   

小結(jié):詳解Qt數(shù)據(jù)庫(kù)的鏈接與如何使用SQL的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

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

2011-08-30 11:04:30

鏈接查詢內(nèi)連接外連接

2011-03-28 12:33:09

SQL Server數(shù)據(jù)庫(kù)鏈接

2011-06-23 18:37:02

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

2011-08-22 11:39:53

SQL Server數(shù)PIVOT

2011-04-02 14:24:25

SQL Server數(shù)網(wǎng)絡(luò)鏈接

2011-08-24 12:49:56

SQL Server托管代碼

2011-06-21 15:31:04

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

2011-08-11 09:12:31

SQL Server nolock

2011-07-05 09:54:04

2011-07-01 14:06:57

Qt sqlite

2011-08-30 14:25:06

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

2011-08-22 13:28:56

FOR XMLSQL Server

2011-06-21 15:11:04

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

2022-11-04 08:34:27

Oracle數(shù)據(jù)庫(kù)

2011-08-15 14:29:52

SQL Server數(shù)事務(wù)

2011-08-25 16:50:20

SQL ServerAccessASP

2011-07-05 10:03:00

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

2011-08-24 09:15:36

SQL Server數(shù)FOR XML AUT

2021-03-18 08:20:19

SQLServer數(shù)據(jù)庫(kù)SQL

2011-04-18 16:03:28

SSB數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

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