亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1120 | 回復: 0
打印 上一主題 下一主題

Qt數據庫(一)簡介 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-20 09:44 |只看該作者 |倒序瀏覽
聲明:本文原創(chuàng)于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 轉載請注明出處。

從今天開始我們學習Qt數據庫編程的內容。

先說明:我們以后使用現在最新的基于Qt 4.6.2的Qt Creator 1.3.1 Windows版本,該版本是2010年2月17日發(fā)布的。

數據庫幾乎是每個較大的軟件所必須應用的,而在Qt中也使用QtSql模塊實現了對數據庫的完美支持。我們在Qt Creator的幫助中查找QtSql Module,其內容如下圖:

可以看到這個模塊是一組類的集合,使用這個模塊我們需要加入頭文件#include <QtSql>,而在工程文件中需要加入一行代碼:QT += sql

這里每個類的作用在后面都有簡單的介紹,你也可以進入其中查看其詳細內容。下面我們先簡單的說一下QSqlDatabase類和QSqlQuery類。
QSqlDatabase類實現了數據庫連接的操作,現在Qt支持的數據庫類型有如下幾種:

而 現在我們使用的免費的Qt只提供了SQLite和ODBC數據庫的驅動(我們可以在Qt Creator安裝目錄下的qt\plugins\sqldrivers文件夾下查看),而其他數據庫的驅動需要我們自己添加。SQLite是一個小巧的 嵌入式數據庫,關于它的介紹你可以自己在網上查找。
QSqlQuery類用來執(zhí)行SQL語句。(關于SQL語句:在我的教程中只會出現很簡單的SQL語句,你沒有相關知識也可以看懂,但是如果想進行深入學習,就需要自己學習相關知識了。)

下面我們就先利用這兩個類來實現最簡單的數據庫程序,其他的類我們會在以后的教程中逐個學習到。
1.新建Qt控制臺工程。

2.選擇上QtSql模塊,這樣就會自動往工程文件中添加QT += sql 這行代碼了。

3.修改main.cpp中的內容如下。
#include <QtCore/QCoreApplication>
#include <QtSql>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //添加數據庫驅動
    db.setDatabaseName(":memory:"); //數據庫連接命名
    if(!db.open()) //打開數據庫
    {
        return false;
    }

    QSqlQuery query; //以下執(zhí)行相關QSL語句
    query.exec("create table student(id int primary key,name varchar)");
    //新建student表,id設置為主鍵,還有一個name項
    query.exec("insert into student values(1,'xiaogang')");
    query.exec("insert into student values(2,'xiaoming')");
    query.exec("insert into student values(3,'xiaohong')");
   
//向表中插入3條記錄
    query.exec("select id,name from student where id >= 2");
    //查找表中id >=2 的記錄的id項和name項的值
    while(query.next())       //query.next()指向查找到的第一條記錄,然后每次后移一條記錄
    {
        int ele0 = query.value(0).toInt();        //query.value(0)是id的值,將其轉換為int型
        QString ele1 =query.value(1).toString();
        qDebug() << ele0 <<ele1 ;       //輸出兩個值
    }
   
    return a.exec();
}
我們使用了SQLite數據庫,連接名為“:memory:”表示這是建立在內存中的數據庫,也就是說該數據庫只在程序運行期間有效。如果需要保存該數據庫文件,我們可以將它更改為實際的文件路徑。
4.最終效果如下。

5.我們可以將主函數更改如下。
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
    qDebug() << "\t" << driver;

    return a.exec();
}
這樣運行程序就可以顯示現在所有能用的數據庫驅動了。

可以看到現在可用的數據庫驅動只有三個。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP