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

Qt數據庫 利用QSqlQuery類執行SQL語句 下篇

移動開發
本文介紹的是Qt數據庫 利用QSqlQuery類執行SQL語句,SQL即結構化查詢語言,是關系數據庫的標準語言。詳細內容我們先來看內容。

Qt數據庫 利用QSqlQuery類執行SQL語句 下篇是本節介紹的內容,接著上篇文章繼續講 Qt數據庫 利用QSqlQuery類執行SQL語句 中篇,先來看內容。

三,批處理操作。

當要進行多條記錄的操作時,我們就可以利用綁定進行批處理。看下面的例子。

  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>   。

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

運行效果如下:

Qt數據庫 利用QSqlQuery類執行SQL語句 下篇

四,事務操作。

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

如下面的例子:

  1. void Widget::on_pushButton_clicked()  
  2. {  
  3.     if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions))  
  4.     {     //先判斷該數據庫是否支持事務操作  
  5.         QSqlQuery query;  
  6.         if(QSqlDatabase::database().transaction()) //啟動事務操作  
  7.         {  
  8.             //  
  9.             //下面執行各種數據庫操作  
  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()函數可以查看一個數據庫是否支持事務。

運行結果如下:

Qt數據庫 利用QSqlQuery類執行SQL語句 下篇

可以看到結果是正確的。

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

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

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-27 14:17:35

Qt 數據庫 QSqlQuery

2011-06-27 14:31:29

Qt 數據庫 SQL語句

2011-06-27 13:49:43

Qt 數據庫 QSqlQueryM

2011-06-21 15:58:20

Qt 數據庫

2011-08-15 14:29:52

SQL Server數事務

2010-09-07 15:20:58

SQL語句事務

2011-06-21 15:31:04

Qt 數據庫 SQL

2010-11-18 10:06:16

Oracle數據庫性能

2009-03-09 17:46:16

ASP.NETSQLOracle

2011-01-06 09:28:19

SQL語句

2010-09-07 16:12:36

SQL語句數據庫壓縮

2010-04-16 09:41:42

Oracle數據庫查看

2011-09-09 10:10:13

SQL數據庫點滴

2011-09-01 19:00:08

SQL ServerDBCC語句

2011-03-30 09:23:29

2010-06-28 10:36:42

SQL Server數

2010-05-11 10:12:50

mysql數據庫sql

2023-05-10 08:29:12

2019-03-01 18:50:09

SQL Server數據庫備份并壓縮

2010-07-02 08:23:06

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 淫片专区| 日韩和的一区二区 | 日韩欧美视频 | 国产激情亚洲 | 国产成人精品一区二区三区在线 | 91欧美| 91久久综合亚洲鲁鲁五月天 | 鲁视频 | 久久国产一区二区三区 | 亚洲狠狠丁香婷婷综合久久久 | 97成人精品| 国产精品福利在线观看 | 久久精品久久久久久 | 成人黄色在线视频 | 午夜精品久久久久久不卡欧美一级 | 福利片一区二区 | 国产精品亚洲成在人线 | 欧美一级高潮片免费的 | 美女久久久 | 久久精品色欧美aⅴ一区二区 | 精品久久一区 | 国产精品久久久久久久久久免费看 | 欧美11一13sex性hd| 北条麻妃av一区二区三区 | 亚洲精品99999 | 午夜av影院 | 91av在线视频观看 | 欧美视频一区二区三区 | 久产久精国产品 | 日韩一区二区成人 | 欧美一级淫片免费视频黄 | 在线观看a视频 | 亚洲日韩中文字幕一区 | 国产色视频网站 | 亚洲激情在线视频 | 日韩在线免费播放 | 成人av观看| av国产在线观看 | 日韩久久久久久 | 超碰97免费观看 | 99久久精品免费看国产四区 |