详解Qt数据库的链接与如何使用SQL

移动开发
Qt数据库的链接与如何使用SQL是本文要介绍的内容,主要是来学习QT中数据库的链接和SQL如何来使用,具体内容的实现来看本文详解。

Qt数据库的链接与如何使用SQL是本文要介绍的内容,主要是来学习QT数据库的链接和SQL如何来使用,具体内容的实现来看本文详解。

一直没接触数据库,前一阵突然有机会用了用MySQL,顺手把SQL语法学了一遍,学完了手痒痒,一想Qt可以结合数据库,就顺便试了下Qt链接数据库与使用SQL。SQL部分就不说了,Qt先说链接部分。

1、先做数据库驱动

现在Qt SDk for windows里面已经有ODBC的驱动了,我当时现做了个MySQL的驱动(其实我当时是没看见有ODBC),因为我使用MinGW,所以先使用remip.exe把MySQL/opt里面的 LibMySQL.lib转成.a(使用MSVC的就可以跳过这步了)。然后再进qt/src/plugins/sqldriver/mysql 编译出驱动

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

注意下qmake的参数就行了 再make, 这部分网上说的很详细,

2、Qt使用SQL

主要是下面的几个类

 QSqlDatabase 建立于数据库的链接
 
 QSqlQuery 用于执行SQL语句
 
 QSqlTableModel 结合QTableView可以输出数据库的表

贴下我写的简单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");//数据库名    
  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;//用于执行SQL语言    
  15.  query.exec("show databases");//很方便的    
  16.  while (query.next()) {    
  17.      qDebug()<<query.value(0).toString()<<"/n";    
  18. }    
  19.  
  20. QSqlTableModel *model = new QSqlTableModel;//间接将数据库表装入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);   

小结:详解Qt数据库的链接与如何使用SQL的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-30 11:04:30

链接查询内连接外连接

2011-03-28 12:33:09

SQL Server数据库链接

2011-06-23 18:37:02

Qt 数据库

2011-04-02 14:24:25

SQL Server数网络链接

2011-08-24 12:49:56

SQL Server托管代码

2011-08-22 11:39:53

SQL Server数PIVOT

2011-06-21 15:31:04

Qt 数据库 SQL

2011-08-11 09:12:31

SQL Server nolock

2011-08-22 13:28:56

FOR XMLSQL Server

2011-08-30 14:25:06

QT数据库

2011-07-01 14:06:57

Qt sqlite

2011-07-05 09:54:04

2011-06-21 15:11:04

QT 数据库

2022-11-04 08:34:27

Oracle数据库

2011-08-15 14:29:52

SQL Server数事务

2011-08-25 16:50:20

SQL ServerAccessASP

2011-08-24 09:15:36

SQL Server数FOR XML AUT

2021-03-18 08:20:19

SQLServer数据库SQL

2011-04-18 16:03:28

SSB数据库

2011-07-05 10:03:00

Qt MYSQL 数据库
点赞
收藏

51CTO技术栈公众号