青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

zhonghua

C++博客 首頁 新隨筆 聯系 聚合 管理
  72 Posts :: 1 Stories :: 4 Comments :: 0 Trackbacks

 #include <QtSql>
QT += sql
QSqlDatabase類實現了數據庫連接的操作
QSqlQuery類執行SQL語句
QSqlRecord類封裝數據庫所有記錄

QSqlDatabase類

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");  
  2. db.setHostName("localhost");    //數據庫主機名   
  3. db.setDatabaseName("scott");    //數據庫名   
  4. db.setUserName("stott");        //數據庫用戶名   
  5. db.setPassword("tiger");        //數據庫密碼   
  6. db.open();          //打開數據庫連接  
  7. db.close();         //釋放數據庫連接  

建立數據庫文件

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");  
  2. db.setDatabaseName("database.db");  
  3. if (!db.open())   
  4. {  
  5.     qDebug("數據庫不能打開");  
  6. }  
  7. return false;  
  1. 建立數據庫文件后創建表并插入兩條數據  
  1. QSqlQuery query;  
  2. query.exec("create table student(id INTEGER PRIMARY KEY autoincrement,  
  3.             name nvarchar(20), age int)"); //id自動增加  
  4. query.exec("insert into student values(1,'小明', 14)");  
  5. query.exec("insert into student values(2,'小王',15)");  


QSqlQuery類

插入值到數據庫操作

一、直接用SQL語句插入(參照上面)

二、利用預處理方式插入(ORACLE語法和ODBC語法)

適合插入多條記錄,或者避免將值轉換成字符串(即正確地轉義),調用prepare()函數指定一個包含占位符的query,然后綁定要插入的值

ORACLE語法

  1. QSqlQuery query;   
  2. query.prepare("INSERT INTO T_STUDENT (name, age) VALUES (:name, :age)"); //準備執行SQL查詢  
  3. query.bindValue(":name", "小王");   //在綁定要插入的值  
  4. query.bindValue(":age", 11);   
  5. query.exec();  


ODBC語法

  1. QSqlQuery query;  
  2. query.prepare("INSERT INTO T_STUDENT (name,age) VALUES (?,?)"); //準備執行SQL查詢  
  3. query.addBindValue("小王");   //在綁定要插入的值  
  4. query.bindValue(11);  
  5. query.exec();  

三、批量插入到數據庫中

  1. QSqlQuery query;  
  2. query.prepare(“insert into student values (?, ?)”);  
  3. QVariantList names;  
  4. names << "小王" << "小明" << "小張" << "小新"; // 如果要提交空串,用QVariant(QVariant::String)代替名字  
  5. query.addBindValue(names);  
  6. QVariantList ages;  
  7. ages << 11 << 13 << 12 << 11;  
  8. query.addBindValue(ages);  
  9. if (!q.execBatch()) //進行批處理,如果出錯就輸出錯誤  
  10.     qDebug() << q.lastError();  


查詢數據庫操作

  1. QSqlQuery query;  
  2. query.exec("SELECT * FROM t_STUDENT"); // 查詢的結果可能不止一條記錄,所以我們稱之為結果集  
  3. while (query.next())  
  4. {  
  5.     QString name = query.value(0).toString(); //取第i條記錄第1個字段(從0開始計數)的結果  
  6.     int age = query.value(0).toInt(); //取第i條記錄第2個字段的結果  
  7.     // ... 處理name,age變量數據   
  8. }  


seek(int n) :query指向結果集的第n條記錄。指定當前的位置

first() :query指向結果集的第一條記錄。

last() :query指向結果集的最后一條記錄。

next() :query指向下一條記錄,每執行一次該函數,便指向相鄰的下一條記錄。

previous() :query指向上一條記錄,每執行一次該函數,便指向相鄰的上一條記錄。

record() :獲得現在指向的記錄。

value(int n) :獲得屬性的值。其中n表示你查詢的第n個屬性

int rowNum = query.at(); //獲取query所指向的記錄在結果集中的編號

int fieldNo = query.record().indexOf(“name”); //返回"name"的列號

int columnNum = query.record().count(); //獲取每條記錄中屬性(即列)的個數

 

事務操作

操作函數:transaction(),commit()提交,rollback()回滾
操作事務前,先判斷該數據庫是否支持事務操作。hasFeature是QSQLDriver類函數

  1. if (QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions)){ ... } //   

 插入一條記錄,然后提交事務

  1. QSqlDatabase::database().transaction();  
  2. QSqlQuery query;  
  3. query.exec("SELECT id FROM T_STUDENT WHERE class=1");  
  4. if (query.next())  
  5. {  
  6.     query.exec("INSERT INTO T_STUDENT (id,name,age) VALUES (3,'小李',13)");  
  7. }  
  8. QSqlDatabase::database().commit();  
posted on 2012-04-23 11:16 米米 閱讀(630) 評論(0)  編輯 收藏 引用 所屬分類: qt
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久欧美| 久久中文在线| 国产精品免费网站| 亚洲综合社区| 亚洲欧美久久| 狠狠色丁香久久综合频道| 久久亚洲精品一区二区| 久久精品亚洲精品| 亚洲人成人99网站| 日韩午夜免费视频| 国产精品一区免费视频| 久久免费黄色| 欧美大香线蕉线伊人久久国产精品| 亚洲精品午夜| 一区二区欧美亚洲| 国产亚洲欧美一区二区三区| 欧美成人视屏| 国产精品成人免费精品自在线观看| 午夜欧美大片免费观看| 久久精品日韩| 亚洲少妇在线| 欧美在线观看网址综合| 日韩一二三在线视频播| 亚洲欧美另类久久久精品2019| 在线不卡中文字幕| 一本色道久久| 亚洲第一黄色网| 亚洲少妇一区| 亚洲国产精品精华液网站| 亚洲一区二区三区四区五区午夜| 国外成人在线视频网站| 日韩午夜在线| 亚洲日本va午夜在线电影| 亚洲一区二区成人| 亚洲毛片视频| 欧美一区二区视频网站| 亚洲午夜久久久久久久久电影网| 久久久精品性| 欧美综合国产| 欧美日韩在线观看视频| 欧美激情一区在线| 国产亚洲一级高清| 亚洲视频一区二区在线观看 | 一本色道久久加勒比88综合| 激情小说另类小说亚洲欧美| 中文在线一区| 亚洲免费观看| 暖暖成人免费视频| 久久久久免费| 国产欧美精品久久| 一区二区日韩伦理片| 亚洲啪啪91| 久久这里只有| 久久永久免费| 国产日韩精品入口| 亚洲一区国产精品| 亚洲一二三区精品| 欧美日韩视频在线一区二区观看视频 | 亚洲综合清纯丝袜自拍| 鲁大师成人一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产精品sm| 一区二区日韩免费看| 亚洲手机视频| 欧美视频一区在线| 亚洲色图自拍| 欧美亚洲日本国产| 国产女精品视频网站免费| 亚洲制服少妇| 久久精品国产亚洲a| 国产亚洲成年网址在线观看| 午夜宅男久久久| 久久精品国产免费观看| 国产真实久久| 久久午夜电影网| 亚洲国产cao| 亚洲精品视频一区| 欧美午夜精彩| 午夜精品视频在线| 看片网站欧美日韩| 亚洲人成绝费网站色www| 欧美精品一区二区视频 | 免费欧美在线视频| 亚洲电影免费观看高清完整版在线| 久久资源av| 亚洲精品日韩在线| 欧美一区二区三区免费视频| 国产一区二区主播在线| 久久一区二区精品| 日韩一级裸体免费视频| 香港久久久电影| 樱桃国产成人精品视频| 欧美精品在线观看播放| 亚洲麻豆av| 久久久午夜精品| 亚洲精品一区二区三区婷婷月 | 久久综合精品一区| 99精品福利视频| 久久er99精品| 亚洲精品在线电影| 国产欧美在线观看一区| 久久久久一本一区二区青青蜜月| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲一区在线免费观看| 国产综合色在线| 欧美日韩一区在线视频| 久久久久久久综合日本| 亚洲视频欧美视频| 欧美成人免费在线观看| 亚洲欧美不卡| 亚洲精品乱码久久久久久久久| 国产精品试看| 欧美精品xxxxbbbb| 久久精品99国产精品酒店日本| 亚洲日本欧美天堂| 久久综合狠狠综合久久激情| 宅男噜噜噜66一区二区66| 在线精品一区二区| 国产视频精品va久久久久久| 欧美日韩综合视频| 免费在线观看成人av| 欧美亚洲一区在线| 一区二区三区国产精品| 亚洲高清在线播放| 久久综合导航| 久久精品论坛| 久久成人免费| 午夜精品久久久久久99热| 宅男在线国产精品| 亚洲精品在线电影| 亚洲黄色一区二区三区| 韩日欧美一区二区| 国产视频欧美| 国产日韩精品久久| 国产麻豆一精品一av一免费| 欧美日韩亚洲一区二区三区| 欧美国产在线视频| 你懂的视频一区二区| 久久久久国产精品www| 久久久久成人精品免费播放动漫| 午夜精品一区二区三区在线视 | 久久久蜜桃精品| 性18欧美另类| 欧美在线视频播放| 久久不射中文字幕| 欧美中文字幕不卡| 欧美中文在线观看国产| 久久www免费人成看片高清| 午夜综合激情| 久久人人九九| 免费视频一区| 亚洲国产一二三| 99精品国产在热久久| 日韩一级免费观看| 亚洲免费中文| 久久精品国产精品亚洲| 久久综合九色九九| 欧美激情在线有限公司| 欧美日韩视频在线观看一区二区三区| 欧美日韩精品免费在线观看视频| 欧美日韩专区| 国产日韩专区在线| 136国产福利精品导航网址| 亚洲人成毛片在线播放| 亚洲一区二区三区成人在线视频精品| 亚洲综合电影| 久久综合伊人77777麻豆| 欧美国产激情二区三区| 日韩写真在线| 欧美伊人久久久久久久久影院| 另类图片国产| 欧美午夜一区二区福利视频| 国户精品久久久久久久久久久不卡 | 国产精品免费视频观看| 国产在线精品自拍| 99re在线精品| 久久久噜噜噜| 亚洲美女电影在线| 午夜天堂精品久久久久| 欧美国产日韩二区| 国产精品嫩草久久久久| 亚洲高清电影| 午夜视频一区二区| 亚洲电影第三页| 午夜影院日韩| 欧美激情1区2区3区| 国产日韩一区二区三区在线| 日韩午夜在线观看视频| 久久久久亚洲综合| 亚洲理伦电影| 久久中文在线| 国产欧美一区二区精品仙草咪| 亚洲区国产区| 久久久久久免费| 夜夜精品视频| 欧美精品成人91久久久久久久| 国产一区二区三区电影在线观看 | 亚洲美女av黄| 免费不卡在线视频| 亚洲永久在线|