freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

qt數(shù)據(jù)庫(kù)操作(已修改)

2025-08-16 22:50 本頁(yè)面
 

【正文】 二十一、Qt數(shù)據(jù)庫(kù)(一)簡(jiǎn)介(原創(chuàng))20100302 12:03聲明:本文原創(chuàng)于yafeilinux的百度博客。從今天開始我們學(xué)習(xí)Qt數(shù)據(jù)庫(kù)編程的內(nèi)容。先說明:我們以后使用現(xiàn)在最新的基于Qt Creator Windows版本,該版本是2010年2月17日發(fā)布的。數(shù)據(jù)庫(kù)幾乎是每個(gè)較大的軟件所必須應(yīng)用的,而在Qt中也使用QtSql模塊實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)的完美支持。我們?cè)赒t Creator的幫助中查找QtSql Module,其內(nèi)容如下圖:可以看到這個(gè)模塊是一組類的集合,使用這個(gè)模塊我們需要加入頭文件include QtSql,而在工程文件中需要加入一行代碼:QT += sql這里每個(gè)類的作用在后面都有簡(jiǎn)單的介紹,你也可以進(jìn)入其中查看其詳細(xì)內(nèi)容。下面我們先簡(jiǎn)單的說一下QSqlDatabase類和QSqlQuery類。QSqlDatabase類實(shí)現(xiàn)了數(shù)據(jù)庫(kù)連接的操作,現(xiàn)在Qt支持的數(shù)據(jù)庫(kù)類型有如下幾種:而現(xiàn)在我們使用的免費(fèi)的Qt只提供了SQLite和ODBC數(shù)據(jù)庫(kù)的驅(qū)動(dòng)(我們可以在Qt Creator安裝目錄下的qt\plugins\sqldrivers文件夾下查看),而其他數(shù)據(jù)庫(kù)的驅(qū)動(dòng)需要我們自己添加。SQLite是一個(gè)小巧的嵌入式數(shù)據(jù)庫(kù),關(guān)于它的介紹你可以自己在網(wǎng)上查找。QSqlQuery類用來執(zhí)行SQL語(yǔ)句。(關(guān)于SQL語(yǔ)句:在我的教程中只會(huì)出現(xiàn)很簡(jiǎn)單的SQL語(yǔ)句,你沒有相關(guān)知識(shí)也可以看懂,但是如果想進(jìn)行深入學(xué)習(xí),就需要自己學(xué)習(xí)相關(guān)知識(shí)了。)下面我們就先利用這兩個(gè)類來實(shí)現(xiàn)最簡(jiǎn)單的數(shù)據(jù)庫(kù)程序,其他的類我們會(huì)在以后的教程中逐個(gè)學(xué)習(xí)到。,這樣就會(huì)自動(dòng)往工程文件中添加QT += sql 這行代碼了。include QtCore/QCoreApplicationinclude QtSqlint main(int argc, char *argv[]){ QCoreApplication a(argc, argv)。 QSqlDatabase db = QSqlDatabase::addDatabase(QSQLITE)。 //添加數(shù)據(jù)庫(kù)驅(qū)動(dòng) (:memory:)。 //數(shù)據(jù)庫(kù)連接命名 if(!()) //打開數(shù)據(jù)庫(kù) { return false。 } QSqlQuery query。 //以下執(zhí)行相關(guān)QSL語(yǔ)句 (create table student(id int primary key,name varchar))。 //新建student表,id設(shè)置為主鍵,還有一個(gè)name項(xiàng) (insert into student values(1,39。xiaogang39。))。 (insert into student values(2,39。xiaoming39。))。 (insert into student values(3,39。xiaohong39。))。 //向表中插入3條記錄 (select id,name from student where id = 2)。 //查找表中id =2 的記錄的id項(xiàng)和name項(xiàng)的值 while(()) //()指向查找到的第一條記錄,然后每次后移一條記錄 { int ele0 = (0).toInt()。 //(0)是id的值,將其轉(zhuǎn)換為int型 QString ele1 =(1).toString()。 qDebug() ele0 ele1 。 //輸出兩個(gè)值 } return ()。}我們使用了SQLite數(shù)據(jù)庫(kù),連接名為“:memory:”表示這是建立在內(nèi)存中的數(shù)據(jù)庫(kù),也就是說該數(shù)據(jù)庫(kù)只在程序運(yùn)行期間有效。如果需要保存該數(shù)據(jù)庫(kù)文件,我們可以將它更改為實(shí)際的文件路徑。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 ()。}這樣運(yùn)行程序就可以顯示現(xiàn)在所有能用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)了??梢钥吹浆F(xiàn)在可用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)只有三個(gè)。二十二、Qt數(shù)據(jù)庫(kù)(二)添加MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)插件(原創(chuàng))20100308 18:06聲明:本文原創(chuàng)于yafeilinux的百度博客。在上一節(jié)的末尾我們已經(jīng)看到,現(xiàn)在可用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)只有3種,那么怎樣使用其他的數(shù)據(jù)庫(kù)呢?在Qt中,我們需要自己編譯其他數(shù)據(jù)庫(kù)驅(qū)動(dòng)的代碼,讓它們以插件的形式來使用。下面我們就以現(xiàn)在比較流行的MySQL數(shù)據(jù)庫(kù)為例,說明一下怎樣在Qt Creator中添加數(shù)據(jù)庫(kù)驅(qū)動(dòng)插件。在講述之前,我們先看一下Qt Creator中數(shù)據(jù)庫(kù)的插件到底放在哪里。我們進(jìn)入Qt Creator的安裝目錄,然后進(jìn)入相對(duì)應(yīng)的文件夾下,比方我這里是D:\Qt\\qt\plugins\sqldrivers在這里我們可以看見幾個(gè)文件,如下圖:根據(jù)名字中的關(guān)鍵字,我們可以判斷出這就是ODBC數(shù)據(jù)庫(kù)和SQLite數(shù)據(jù)庫(kù)的驅(qū)動(dòng)插件。下面我們編譯好MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)后,也會(huì)在這里出現(xiàn)相對(duì)應(yīng)的文件。首先:我們查看怎樣安裝數(shù)據(jù)庫(kù)插件。我們打開Qt Creator,在幫助中搜索SQL Database Drivers關(guān)鍵字。這里列出了編譯Qt支持的所有數(shù)據(jù)庫(kù)的驅(qū)動(dòng)的方法。我們下拉到在windows上編譯QMYSQL數(shù)據(jù)庫(kù)插件的部分,其內(nèi)容如下:這里詳細(xì)介紹了整個(gè)編譯的過程,其可以分為以下幾步:第一,下載MySQL的安裝程序,在安裝時(shí)選擇定制安裝,這時(shí)選中安裝Libs和Include文件。安裝位置可以是C:\MySQL 。注意:安裝位置不建議改動(dòng),因?yàn)橄旅孢M(jìn)行編譯的命令中使用了安裝路徑,如果改動(dòng),那么下面也要進(jìn)行相應(yīng)改動(dòng)。第二,進(jìn)行編譯。我們按照實(shí)際情況輸入的命令如下。cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake INCLUDEPATH+=C:\MySQL\include LIBS+=C:\MySQL\lib\opt\ mingw32make注意:在上面的命令中qmake之后如果加上“o Makefile”選項(xiàng),那么這個(gè)插件只能在以release模式編譯程序時(shí)才能使用,所以我們上面沒有加這個(gè)選項(xiàng)。然后:我們按照上面的過程進(jìn)行相應(yīng)操作。我們可以到MySQL的官方主頁(yè) 進(jìn)行下載最新的MySQL的windows版本,現(xiàn)在具體的下載頁(yè)面地址為:我們不進(jìn)行注冊(cè),直接點(diǎn)擊其下面的No thanks, just take me to the downloads!可以在其中選擇一個(gè)鏡像網(wǎng)點(diǎn)進(jìn)行下載,我使用的是Asia下的最后一個(gè),就是臺(tái)灣的鏡像網(wǎng)點(diǎn)下載的。下載到的文件名為: ,其中的win32表明是32位的windows系統(tǒng),這一點(diǎn)一定要注意。文件大小為40M左右。當(dāng)然你也可以到中文網(wǎng)站上進(jìn)行下載:,隨便下一個(gè)windows的版本就行。我們選擇定制安裝Custom。然后選中安裝Include文件和Lib文件。我們將安裝路徑更改為:C:\MySQL 。最終的界面如下。安裝完成后,我們不進(jìn)行任何操作,所以將兩個(gè)選項(xiàng)都取消。我們?cè)谧烂嫔祥_始菜單中找到Qt Creator的菜單,然后打開Qt Command Prompt。然后輸入第一條命令cd %QTDIR%\src\plugins\sqldrivers\mysql 后按回車,運(yùn)行效果如下。然后輸入第二條命令:qmake INCLUDEPATH+=C:\MySQL\include LIBS+=C:\MySQL\lib\opt\ 按回車后運(yùn)行效果如下:最后輸入:mingw32make ,按下回車后經(jīng)過幾秒的編譯,最終效果如下:整個(gè)編譯過程中都沒有出現(xiàn)錯(cuò)誤提示,可以肯定插件已經(jīng)編譯完成了。 Creator安裝目錄下存放數(shù)據(jù)庫(kù)驅(qū)動(dòng)插件的文件夾。我這里是D:\Qt\\qt\plugins\sqldrivers其內(nèi)容如下:可以看到已經(jīng)有了和MySQL相關(guān)的文件了。最后:我們編寫程序測(cè)試插件。int main(int argc, char *argv[]){ QCoreApplication a(argc, argv)。 QSqlDatabase db = QSqlDatabase::addDatabase(QMYSQL)。 //添加數(shù)據(jù)庫(kù)驅(qū)動(dòng) return ()。}運(yùn)行程序,效果如下。這里提示:QSqlDatabase: QMYSQL driver not loaded 。:\MySQL\ Creator安裝目錄下的qt\bin目錄中。如下圖:,就沒有提示了。,測(cè)試這時(shí)可用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)。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 ()。}運(yùn)行效果如下:可以看到,現(xiàn)在已經(jīng)有了MySQL的數(shù)據(jù)庫(kù)驅(qū)動(dòng)了。我們這里只介紹了MySQL驅(qū)動(dòng)插件在windows下的編譯方法,其他數(shù)據(jù)庫(kù)和其他平臺(tái)的編譯方法可以按照幫助中的說明進(jìn)行,我們不再介紹。其實(shí)Qt不僅可以編譯現(xiàn)成的數(shù)據(jù)庫(kù)驅(qū)動(dòng)插件,我們也可以編寫自己的數(shù)據(jù)庫(kù)驅(qū)動(dòng)插件,當(dāng)然這是一件相當(dāng)復(fù)雜的事情,我們這里也就不再進(jìn)行介紹。關(guān)于MySQL的使用,我們的教程里現(xiàn)在不再涉及,在,你可以進(jìn)行參考。二十三、Qt數(shù)據(jù)庫(kù)(三)利用QSqlQuery類執(zhí)行SQL語(yǔ)句(一)(原創(chuàng))20100311 23:22聲明:本文原創(chuàng)于yafeilinux的百度博客。SQL即結(jié)構(gòu)化查詢語(yǔ)言,是關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言。前面已經(jīng)提到,在Qt中利用QSqlQuery類實(shí)現(xiàn)了執(zhí)行SQL語(yǔ)句。需要說明,我們這里只是Qt教程,而非專業(yè)的數(shù)據(jù)庫(kù)教程,所以我們不會(huì)對(duì)數(shù)據(jù)庫(kù)中的一些知識(shí)進(jìn)行深入講解,下面只是對(duì)最常用的幾個(gè)知識(shí)點(diǎn)進(jìn)行講解。我們下面先建立一個(gè)工程,然后講解四個(gè)知識(shí)點(diǎn),分別是:(select * from zb_tb where zd_bs like 39。+ aValue + %39。 order by zf_bfb desc)。 一,操作SQL語(yǔ)句返回的結(jié)果集。二,在SQL語(yǔ)句中使用變量。三,批處理操作。四,事務(wù)操作。我們新建Qt4 Gui Application工程,我這里工程名為query ,然后選中QtSql模塊,Base class選QWidget。工程建好后,添加C++ Header File , ,更改其內(nèi)容如下:ifndef CONNECTION_Hdefine CONNECTION_Hinclude QMessageBoxinclude QSqlDatabaseinclude QSqlQuerystatic bool createConnection(){ QSqlDatabase db = QSqlDatabase::addDatabase(QSQLITE)。 (:memory:)。 if (!()) { QMessageBox::critical(0, qApptr(Cannot open database), qApptr(Unable to establish a database connection. ), QMessageBox::Cancel)。 return false。 } QSqlQuery query。 (create table student (id int primary key, name varchar(20)))。 (insert into student values(0, 39。first39。))。 (insert into student values(1, 39。second39。))。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1