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

關(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中,只有當(dāng)我們執(zhí)行提交修改后,才會真正寫入數(shù)據(jù)庫。當(dāng)然這也是因為我們在最開始設(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è)置。我們只需知道,當(dāng)解析器解析一個XML的元素時,就會執(zhí)行相應(yīng)的事件,我們只需要重寫這些事件處理函數(shù),就能讓它按照我們想法進行解析。

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

責(zé)任編輯: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

2009-06-02 14:36:28

HibernateMySQLEclipse

2011-07-05 18:11:13

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

2011-08-30 14:25:06

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

2011-07-01 13:42:24

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

2018-01-03 14:32:32

2011-08-30 13:49:57

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

2011-06-23 18:37:02

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

2011-06-21 15:31:04

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

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

主站蜘蛛池模板: 欧美成人第一页 | 国产精品久久久久久久久久了 | 亚洲欧美高清 | 色欧美片视频在线观看 | 久久久九九九九 | 久久久久亚洲精品 | 久久亚洲综合 | 日韩一区二区三区在线观看 | 天天色综网 | 自拍偷拍亚洲欧美 | 成人欧美一区二区三区在线播放 | 精品久久久久久久久久久久久久久久久 | www.欧美.com | www.色综合 | 91在线视频网址 | 影音av | 亚洲欧美在线视频 | 一级高清 | 雨宫琴音一区二区在线 | 一区中文字幕 | 一级日批片 | 午夜爱爱网 | 亚洲欧美视频一区 | 国产精品一区二区三区在线 | www.亚洲精品 | 青青草精品 | 亚洲天堂999| 色播久久 | 久久精品亚洲 | 国产一区二区在线免费观看 | 日韩喷潮 | 精品欧美一区二区精品久久久 | 成人欧美一区二区三区在线播放 | 国产精品久久久久久久久久 | 亚洲91| 色综合美女 | 性一交一乱一透一a级 | 不卡的av一区 | 久久天堂网 | 久草新在线 | 精品国产乱码久久久久久闺蜜 |