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

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 米米 閱讀(629) 評論(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>
            久久人人97超碰精品888| 亚洲欧美日韩精品久久奇米色影视| 激情一区二区三区| 亚洲精品影视| 亚洲电影免费在线| 一区精品久久| 亚洲国产黄色| 日韩网站在线看片你懂的| 亚洲精选大片| 99热在线精品观看| 欧美日韩一区二区三区四区在线观看| 亚洲日本电影| 亚洲成人自拍视频| 亚洲精品视频在线播放| 一区二区福利| 久久精品人人做人人综合| 麻豆av一区二区三区久久| 欧美了一区在线观看| 国产精品草莓在线免费观看| 亚洲国产欧美久久| 亚洲精品一区二区三区蜜桃久| 久久久久久久国产| 久久影视三级福利片| 欧美老女人xx| 韩国精品一区二区三区| 亚洲国产乱码最新视频| 日韩一二三在线视频播| 亚洲欧美日韩人成在线播放| 久久九九免费| 亚洲第一色中文字幕| 亚洲看片免费| 性做久久久久久| 欧美女激情福利| 国模套图日韩精品一区二区| 99re66热这里只有精品4| 欧美一区二区三区四区高清 | 久久九九久久九九| 欧美国产日韩精品免费观看| 久久综合九色综合网站| 欧美三区在线| 亚洲靠逼com| 噜噜噜久久亚洲精品国产品小说| 翔田千里一区二区| 亚洲日本视频| 欧美一区二区三区另类| 91久久久久久久久久久久久| 久久国产加勒比精品无码| 欧美色一级片| 亚洲美女在线视频| 久久嫩草精品久久久久| 久久综合九色综合久99| 久久综合伊人77777麻豆| 在线亚洲电影| 欧美日韩一区在线观看| 久久一区二区三区四区| 欧美电影电视剧在线观看| 国产一区二区久久久| 欧美小视频在线观看| 香蕉久久精品日日躁夜夜躁| 亚洲国产精品悠悠久久琪琪| 亚洲欧美国产精品va在线观看| 亚洲一区二区三区高清 | 亚洲欧美在线一区二区| 最新日韩精品| 欧美韩日视频| 日韩视频亚洲视频| 欧美国产日韩精品免费观看| 欧美亚男人的天堂| 亚洲一区二区毛片| 在线视频免费在线观看一区二区| 亚洲永久精品大片| 欧美日本在线一区| 一本色道婷婷久久欧美| 一本色道久久88精品综合| 国产精品不卡在线| 欧美一区在线直播| 欧美激情导航| 欧美一区二区三区在线视频| 一区二区av在线| 国产精品麻豆成人av电影艾秋| 国内自拍视频一区二区三区| 久久免费99精品久久久久久| 亚洲精品欧美日韩| 欧美午夜久久久| 欧美一级艳片视频免费观看| 久久精品视频免费观看| 亚洲激情在线激情| 亚洲精品乱码久久久久久蜜桃91 | 久久综合一区| 亚洲国产成人av好男人在线观看| 亚洲免费小视频| 小黄鸭精品aⅴ导航网站入口| 欧美精品亚洲| 亚洲欧美综合国产精品一区| 欧美在线视频a| 99这里只有久久精品视频| 亚洲欧美中文在线视频| 最新国产成人av网站网址麻豆| 久久精品av麻豆的观看方式| 久久久欧美精品| 亚洲一区二区三区影院| 久久久午夜精品| 亚洲一级黄色av| 久久五月婷婷丁香社区| 亚洲综合丁香| 欧美二区不卡| 久久久久五月天| 欧美三级日韩三级国产三级| 久久久久欧美| 国产精品日韩高清| 亚洲国产精品悠悠久久琪琪| 韩国v欧美v日本v亚洲v| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 国产精品久久久久永久免费观看 | 欧美在线视频一区二区三区| 免费视频久久| 久久午夜精品| 国产欧美精品一区aⅴ影院| 亚洲精品小视频在线观看| 欧美一区二区三区精品电影| 另类图片综合电影| 久久精品一区蜜桃臀影院| 欧美日韩在线综合| 亚洲电影免费观看高清完整版在线 | 一区在线观看| 亚洲视频第一页| 在线一区观看| 亚洲一区www| 亚洲看片免费| 欧美精品一区二区精品网| 欧美激情一区三区| 极品尤物久久久av免费看| 香蕉成人伊视频在线观看 | 中日韩视频在线观看| 久久在线免费| 麻豆精品网站| 亚洲大胆av| 毛片av中文字幕一区二区| 老司机午夜免费精品视频| 国产在线成人| 久久精品一区二区| 久久伊伊香蕉| 亚洲国产精品一区| 嫩草国产精品入口| 亚洲激情另类| 亚洲桃花岛网站| 久久精品最新地址| 亚洲日本激情| 一区二区三区久久精品| 亚洲一级一区| 国产精品网站视频| 欧美一区二区成人| 蜜臀久久99精品久久久画质超高清| 欧美日本三级| 国产精品99久久久久久有的能看| 伊大人香蕉综合8在线视| 久久一区中文字幕| 欧美激情一区二区三区四区| 一本色道久久综合一区| 噜噜噜在线观看免费视频日韩| 亚洲一级黄色| 国产亚洲欧美激情| 久久久久国产精品厨房| 欧美亚洲视频一区二区| 久久亚洲精品中文字幕冲田杏梨| 亚洲免费视频网站| 好吊一区二区三区| 欧美精品一区二区三区蜜臀| 在线亚洲美日韩| 久久夜色精品国产| 国产日韩欧美三级| 久久人体大胆视频| 久久精品中文字幕一区| 亚洲国产老妈| 国产精品视频免费一区| 久久免费高清| 中日韩美女免费视频网址在线观看 | 欧美一区二区视频在线| 亚洲午夜精品久久| 亚洲精选一区| 国产乱人伦精品一区二区| 亚洲三级色网| 久久精品国产综合精品| 国产精品私人影院| 欧美激情精品久久久六区热门| 欧美高清在线视频| 亚洲欧美日韩综合aⅴ视频| 在线精品视频一区二区三四| 国产精品高清一区二区三区| 一区二区三区四区国产精品| 久久天堂成人| 伊人久久男人天堂| 国产精品国产一区二区| 欧美成在线视频| 久久久另类综合| 欧美一级大片在线观看| 久久久久久自在自线| 先锋影音久久| 中日韩在线视频| 亚洲乱码久久|