自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解 Qt 4訪問Sqlite數(shù)據(jù)庫

移動開發(fā)
Qt 4訪問Sqlite數(shù)據(jù)庫是本文要介紹的內(nèi)容,先來認(rèn)識一下sqlite,它是一款輕量級的、基于文件的嵌入式數(shù)據(jù)庫

本文介紹的詳解 Qt 4訪問Sqlite數(shù)據(jù)庫,文章不僅對sqlite做了簡單描述,并且很詳細(xì)的介紹了sqlite的優(yōu)勢和操作,不多說了,我們先來看內(nèi)容。

sqlite簡介

sqlite 是一款輕量級的、基于文件的嵌入式數(shù)據(jù)庫,2000年就已經(jīng)誕生,經(jīng)過7年多的發(fā)展,直到今天已經(jīng)成為***的嵌入式數(shù)據(jù)庫,包括google在內(nèi)的公司 在其桌面軟件中亦使用 sqlite 存儲用戶數(shù)據(jù)。由此可以看出,已經(jīng)沒有任何理由去懷疑sqlite的穩(wěn)定性了。

sqlite的優(yōu)勢

1、免配置,和access一樣,只要把數(shù)據(jù)庫文件通過ftp上傳到服務(wù)器上就可以使用,不需要服務(wù)器的額外支持

2、備份方便,因為只是一個文件,只要復(fù)制一份該文件,就能備份整個數(shù)據(jù)庫

3、雖然是輕量級數(shù)據(jù)庫,但他支持*** 2tb 的單個庫文件。

4、快,***的快。經(jīng)過實際測試,在幾百萬記錄的情況下,sqlite的插入和查詢速度和 mysql 不分上下,快于 sql server,10倍于 access (但這并不意味著它可以替代 sql server )

用QT操作sqlite,由于sqlite屬于輕量級的數(shù)據(jù)庫,不需要配置,不需要安裝,也不需要管理員,所以也就沒必要像操作mysql等數(shù)據(jù)庫一樣的設(shè)置主機(jī),用戶和密碼了。樣例如下:

  1. #include <QApplication>   
  2. #include <QTextEdit>   
  3. #include <QString>   
  4. #include <QSqlDatabase>   
  5. #include <QSqlQuery>   
  6. #include <QSqlError>   
  7. #include <QSqlDriver>   
  8. #include <QDateTime>   
  9. #include <QDebug>   
  10. int main(int argc, char *argv[])   
  11. {   
  12.     QApplication app(argc, argv);   
  13.     QTextEdit display;   
  14.     display.resize(400, 160);   
  15.     display.show();  //下面進(jìn)行數(shù)據(jù)庫的設(shè)置   
  16.     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");  //使用sqlite數(shù)據(jù)庫驅(qū)動    
  17.     db.setDatabaseName("test");  //我們之前建立的數(shù)據(jù)庫   
  18. bool ok = db.open();  //嘗試連接數(shù)據(jù)庫   
  19. if (ok)   
  20.     {  //這里用text已經(jīng)成功連上數(shù)據(jù)庫   
  21.         QSqlQuery query;  //新建一個查詢的實例   
  22. if (query.exec("select * from student"))   //嘗試列出 student 表的所有記錄   
  23.         {  //本次查詢成功   
  24. int numRows = 0;  //詢問數(shù)據(jù)庫驅(qū)動,是否驅(qū)動含有某種特性    
  25. if (db.driver()->hasFeature(QSqlDriver::QuerySize))   
  26.             {   
  27.                 numRows = query.size();  //如果支持結(jié)果影響的行數(shù),那么直接記錄下來   
  28.             }   
  29. else   
  30.             {   
  31.                 query.last(); //否則定位到結(jié)果***,qt 文檔說,這個方法非常慢   
  32.                 numRows = query.at() + 1;   
  33.                 query.seek(-1);   
  34.             }   
  35.             QString name, age;   
  36.             display.append("===========================================");    
  37. while(query.next())   
  38.             {  //定位結(jié)果到下一條記錄   
  39.                 name = query.value(0).toString();   
  40.                 age = query.value(1).toString();   
  41.                 QString result = name + " " + age;   
  42.                 display.append(result);   
  43.             }   
  44.             display.append("===========================================");   
  45.             display.append(QString("totally %1 rows").arg(numRows) );   
  46.         }   
  47. else   
  48.         {  //如果查詢失敗,用下面的方法得到具體數(shù)據(jù)庫返回的原因   
  49.             QSqlError error = query.lastError();   
  50.             display.append("From mysql database: " + error.databaseText());   
  51.         }   
  52.     }   
  53. else   
  54.     {  //打開數(shù)據(jù)庫失敗,顯示數(shù)據(jù)庫返回的失敗描述   
  55.         display.append("cannot open database.");   
  56.         display.append("Reason: " + db.lastError().databaseText());   
  57.     }   
  58.     QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));   
  59. return app.exec();   

小結(jié):詳解 Qt 4訪問Sqlite數(shù)據(jù)庫的內(nèi)容介紹完了,希望本文對你有所幫助。

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

2011-07-05 16:08:10

2011-07-05 14:46:34

2011-07-20 12:34:49

SQLite數(shù)據(jù)庫約束

2017-07-12 09:20:42

SQLite數(shù)據(jù)庫移植

2011-08-30 14:15:34

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

2018-07-13 09:20:30

SQLite數(shù)據(jù)庫存儲

2011-07-05 10:16:16

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

2011-06-23 18:37:02

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

2011-07-26 18:11:56

iPhone Sqlite 數(shù)據(jù)庫

2011-07-27 10:16:41

iPhone SQLite 數(shù)據(jù)庫

2011-07-05 09:54:04

2011-08-30 14:25:06

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

2011-07-04 17:18:23

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

2011-07-04 18:02:29

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

2011-07-05 10:44:51

Qt Sqlite 靜態(tài)編譯

2011-07-05 10:03:00

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

2019-08-15 07:00:54

SQLite數(shù)據(jù)庫內(nèi)存數(shù)據(jù)庫

2024-12-16 00:52:26

MySQL數(shù)據(jù)庫并發(fā)

2011-08-04 18:00:47

SQLite數(shù)據(jù)庫批量數(shù)據(jù)

2011-08-02 16:16:08

iPhone開發(fā) SQLite 數(shù)據(jù)庫
點贊
收藏

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