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

Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 下篇

移動開發(fā)
本文介紹的是Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句,SQL即結構化查詢語言,是關系數(shù)據(jù)庫的標準語言。詳細內(nèi)容我們先來看內(nèi)容。

Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 下篇是本節(jié)介紹的內(nèi)容,接著上篇文章繼續(xù)講 Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 中篇,先來看內(nèi)容。

三,批處理操作。

當要進行多條記錄的操作時,我們就可以利用綁定進行批處理??聪旅娴睦印?/p>

  1. void Widget::on_pushButton_clicked()  
  2. {  
  3.     QSqlQuery q;  
  4.     q.prepare(“insert into student values (?, ?)”);  
  5.  
  6.     QVariantList ints;  
  7.     ints << 10 << 11 << 12 << 13;  
  8.     q.addBindValue(ints);  
  9.  
  10.     QVariantList names;  
  11.     names << “xiaoming” << “xiaoliang” << “xiaogang” << QVariant(QVariant::String);  
  12.     //***一個是空字符串,應與前面的格式相同  
  13.    q.addBindValue(names);  
  14.  
  15.     if (!q.execBatch()) //進行批處理,如果出錯就輸出錯誤  
  16.         qDebug() << q.lastError();  
  17.  
  18.     //下面輸出整張表  
  19.     QSqlQuery query;  
  20.     query.exec(“select * from student”);  
  21.     while(query.next())  
  22.     {  
  23.         int id = query.value(0).toInt();  
  24.         QString name = query.value(1).toString();  
  25.         qDebug() << id << name;  
  26.     }  

然后在widget.cpp文件中添加頭文件 #include <QSqlError>   。

我們在程序中利用列表存儲了同一屬性的多個值,然后進行了值綁定。***執(zhí)行execBatch()函數(shù)進行批處理。注意程序中利用QVariant(QVariant::String)來輸入空值NULL,因為前面都是QString類型的,所以這里要使用QVariant::String 使格式一致化。

運行效果如下:

Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 下篇

四,事務操作。

事務是數(shù)據(jù)庫的一個重要功能,所謂事務是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做要么全不做,是一個不可分割的工作單位。在Qt中用transaction()開始一個事務操作,用commit()函數(shù)或rollback()函數(shù)進行結束。commit()表示提交,即提交事務的所有操作。具體地說就是將事務中所有對數(shù)據(jù)庫的更新寫回到數(shù)據(jù)庫,事務正常結束。rollback()表示回滾,即在事務運行的過程中發(fā)生了某種故障,事務不能繼續(xù)進行,系統(tǒng)將事務中對數(shù)據(jù)庫的所有已完成的操作全部撤銷,回滾到事務開始時的狀態(tài)。

如下面的例子:

  1. void Widget::on_pushButton_clicked()  
  2. {  
  3.     if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions))  
  4.     {     //先判斷該數(shù)據(jù)庫是否支持事務操作  
  5.         QSqlQuery query;  
  6.         if(QSqlDatabase::database().transaction()) //啟動事務操作  
  7.         {  
  8.             //  
  9.             //下面執(zhí)行各種數(shù)據(jù)庫操作  
  10.             query.exec(“insert into student values (14, ‘hello’)”);  
  11.             query.exec(“delete from student where id = 1″);  
  12.             //  
  13.             if(!QSqlDatabase::database().commit())  
  14.             {  
  15.                 qDebug() << QSqlDatabase::database().lastError(); //提交  
  16.                 if(!QSqlDatabase::database().rollback())  
  17.                     qDebug() << QSqlDatabase::database().lastError(); //回滾  
  18.             }  
  19.         }  
  20.         //輸出整張表  
  21.         query.exec(“select * from student”);  
  22.         while(query.next())  
  23.             qDebug() << query.value(0).toInt() << query.value(1).toString();  
  24.     }  

然后在widget.cpp文件中添加頭文件 #include <QSqlDriver> 。

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

運行結果如下:

Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 下篇

可以看到結果是正確的。

對SQL語句我們就介紹這么多,其實Qt中提供了更為簡單的不需要SQL語句就可以操作數(shù)據(jù)庫的方法,我們在下一節(jié)講述這些內(nèi)容。本文章原創(chuàng)于www.yafeilinux.com

小結:Qt數(shù)據(jù)庫 利用QSqlQuery類執(zhí)行SQL語句 下篇的內(nèi)容介紹完了,希望本文對你有所幫助!更多關于數(shù)據(jù)庫的操作請看編輯推薦。

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

2011-06-27 14:31:29

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

2011-06-27 14:17:35

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

2011-06-27 13:49:43

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

2011-06-21 15:58:20

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

2010-09-07 15:20:58

SQL語句事務

2011-08-15 14:29:52

SQL Server數(shù)事務

2010-11-18 10:06:16

Oracle數(shù)據(jù)庫性能

2011-06-21 15:31:04

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

2011-01-06 09:28:19

SQL語句

2010-09-07 16:12:36

SQL語句數(shù)據(jù)庫壓縮

2010-04-16 09:41:42

Oracle數(shù)據(jù)庫查看

2009-03-09 17:46:16

ASP.NETSQLOracle

2010-06-28 10:36:42

SQL Server數(shù)

2011-09-09 10:10:13

SQL數(shù)據(jù)庫點滴

2011-09-01 19:00:08

SQL ServerDBCC語句

2011-03-30 09:23:29

2023-05-10 08:29:12

2019-03-01 18:50:09

SQL Server數(shù)據(jù)庫備份并壓縮

2010-07-15 15:37:13

SQL Server數(shù)

2010-07-02 08:23:06

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕一区二区三区四区 | 欧美日韩福利视频 | 精品国产91乱码一区二区三区 | 日本一区二区在线视频 | 欧美日日 | 精品欧美一区免费观看α√ | 久久国产精品一区二区 | 国产精品一区二区久久精品爱微奶 | 伊人二区| 日本中出视频 | 国产精品美女久久久 | 黄色成人免费在线观看 | 久久国 | 午夜三级网站 | 成人性生交大免费 | 国产精品高潮呻吟 | 日韩国产专区 | 2023亚洲天堂 | 国产aa| 午夜无码国产理论在线 | 丝袜美腿av | 一区二区视频 | 久久久妇女国产精品影视 | 免费国产一区 | 网黄在线 | 艹逼网| 国产伦精品一区二区三区精品视频 | 男人的天堂久久 | 青青草久久| 天天人人精品 | 国产精品美女久久久久久不卡 | 国产精品日韩欧美一区二区三区 | 成人精品一区二区 | 国产一区91精品张津瑜 | 久久另类视频 | 国产激情视频在线观看 | 亚洲免费在线 | 91精品国产综合久久久久久蜜臀 | 亚洲 自拍 另类 欧美 丝袜 | 中文字字幕一区二区三区四区五区 | 91精品久久久久久久久中文字幕 |