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

關(guān)于 Qt中數(shù)據(jù)庫簡單學(xué)習(xí)教程

移動開發(fā)
OT數(shù)據(jù)庫是本文要介紹的內(nèi)容,主要是來了解QT中的數(shù)據(jù)庫的學(xué)習(xí),Qt中使用QtSql模塊實現(xiàn)了對數(shù)據(jù)庫的完美支持,具體內(nèi)容的實現(xiàn)來看本文詳解,

OT 數(shù)據(jù)庫是本文要介紹的內(nèi)容,主要是來了解QT中的數(shù)據(jù)庫的學(xué)習(xí)。Qt中使用QtSql模塊實現(xiàn)了對數(shù)據(jù)庫的***支持,這個模塊是一組類的集合,使用這個模塊我們需要加入頭文件#include <QtSql>,而在工程文件中需要加入一行代碼:

  1. QT += sql 

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

QSqlQuery 執(zhí)行sql相關(guān)語句事務(wù)是數(shù)據(jù)庫的一個重要功能,所謂事務(wù)是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。在Qt中用transaction()開始一個事務(wù)操作,用commit()

函數(shù)或rollback()函數(shù)進行結(jié)束。commit()表示提交,即提交事務(wù)的所有操作。具體地說就是將事務(wù)中所有對數(shù)據(jù)庫的更新寫回到數(shù)據(jù)庫,事務(wù)正常結(jié)束rollback()表示回滾,即在事務(wù)運行的過程中發(fā)生了某種故障,事務(wù)不能繼續(xù)進行,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有已完成的操作全部撤銷,回滾到事務(wù)開始時的狀態(tài)。

QSqlDatabase::database()返回程序前面所生成的連接的QSqlDatabase對象。hasFeature()函數(shù)可以查看一個數(shù)據(jù)庫是否支持事務(wù)。

Qt中使用了自己的機制來避免使用SQL語句,它為我們提供了更簡單的數(shù)據(jù)庫操作和數(shù)據(jù)顯示模型。它們分別是只讀的QSqlQueryModel,操作單表的QSqlTableModel和以及可以支持外鍵的QSqlRelationalTableModel。

要想使其可讀寫,需要自己的類繼承自QSqlQueryModel,并且重寫setData() 和 flags() 兩個函數(shù)。如果我們要改變數(shù)據(jù)的顯示,就要重寫data() 函數(shù)。

QSqlTableModel,該類提供了一個可讀寫單張SQL表的可編輯數(shù)據(jù)模型??尚薷?,插入,刪除,查詢,和排序。

這個模型可以將所有修改先保存到model中,只有當我們執(zhí)行提交修改后,才會真正寫入數(shù)據(jù)庫。當然這也是因為我們在最開始設(shè)置了它的保存策略:

  1. model->setEditStrategy(QSqlTableModel::OnManualSubmit); 

OnManualSubmit表明我們要提交修改才能使其生效。

QSqlRelationalTableModel,該類為單張的數(shù)據(jù)庫表提供了一個可編輯的數(shù)據(jù)模型,它支持外鍵。

在Qt中的QSqlRelationalDelegate委托類就能實現(xiàn)修改相關(guān)表。我們只需添加加一行代碼:

  1. ui->tableView->setItemDelegate(new QSqlRelationalDelegate(ui->tableView));  
  2. QT += xml  

QtXml Module它們主要是服務(wù)于兩種操作XML文檔的方法:DOM和SAX。Dom(Document Object Model,即文檔對象模型)把XML文檔轉(zhuǎn)換成應(yīng)用程序可以遍歷的樹形結(jié)構(gòu),這樣便可以隨機訪問其中的節(jié)點。它的缺點是需要將整個XML文檔讀入內(nèi)存,消耗內(nèi)存較多。

在QDom中,是將整個XML文件讀到內(nèi)存中的doc對象中的。然后使用節(jié)點(QDomNode )操作doc對象,像XML說明,元素,屬性,文本等等都被看做是節(jié)點,這樣就使得操作XML文檔變得很簡單,我們只需通過轉(zhuǎn)換函數(shù)將節(jié)點轉(zhuǎn)換成相應(yīng)的類型,如

  1. QDomElement e = n.toElement(); 

如果你只想讀取并顯示整個XML文檔,那么SAX是很好的選擇,因為它提供了比DOM更簡單的接口,并且它不需要將整個XML文檔一次性讀入內(nèi)存,這樣便可以用來讀取較大的文件。

在Qt的QtXml模塊中提供了一個QXmlSimpleReader的類,它便是基于SAX的XML解析器。這個解析器是基于事件的,但這些事件由它自身進行關(guān)聯(lián),我們并不需要進行設(shè)置。我們只需知道,當解析器解析一個XML的元素時,就會執(zhí)行相應(yīng)的事件,我們只需要重寫這些事件處理函數(shù),就能讓它按照我們想法進行解析。

小結(jié):關(guān)于 Qt 數(shù)據(jù)庫簡單學(xué)習(xí)教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責任編輯:zhaolei 來源: CSDN博客
相關(guān)推薦

2011-08-30 13:33:29

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

2011-08-30 14:15:34

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

2011-06-27 12:56:28

2011-08-30 15:32:08

QtQuickQML

2011-07-01 10:03:52

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

2011-08-30 14:59:34

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

2011-08-23 16:37:05

Lua數(shù)學(xué)庫

2011-08-30 15:49:03

QtQuick

2011-07-05 18:11:13

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

2009-06-02 14:36:28

HibernateMySQLEclipse

2011-07-01 13:42:24

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

2011-08-30 14:25:06

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

2011-07-05 14:46:34

2011-09-01 15:39:43

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

2011-08-05 16:31:47

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

2011-07-04 11:21:59

QT Designer

2011-08-30 13:49:57

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

2018-01-03 14:32:32

2011-06-23 18:37:02

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

2011-06-21 15:11:04

QT 數(shù)據(jù)庫
點贊
收藏

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