成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Qt數據庫操作 連接SQLite和MySQL數據庫實例

移動開發
本文介紹的是Qt數據庫操作 連接SQLite和MySQL數據庫實例,很詳細的為友們解決問題,不多說,我們先來看內容。

Qt數據庫操作 連接SQLiteMySQL數據庫實例是本文要介紹的內容,本來對于數據庫的操作,本人也是有點感冒,那么我們一起來看這篇文章。
 
下載SQLite數據庫

首先到SQLite官方網站下載:

http://www.sqlite.org/download.html

得到sqlite3.exe。即可.就可以操作數據庫了。

運行cmd到該指定的目錄下,使用如下命令:如

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17>sqlite3.exe test 

并有以下提示:Enter SQL statements terminated with a ";"  

就可以創建一個名為test的數據庫了.你可以使用.help命令查看各命令.

.databases   可以得到所有的數據庫。

可以使用如下命令得到一張表,并插入數據。***.quit退出.

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> create table student(id varchar(10),name varchar(20),age smallint);  

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> select * from student;  

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> insert into student values('1001' , 'lovesizhao' ,26);  

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> select * from student;  1001|lovesizhao|26  

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> drop table student;  

F:\軟件\學習軟件\數據庫\SQlite\sqlite-3_6_17> .quit 

而drop table student;   可以刪除該表格.其實大部操作都屬于SQL的相同沒什么改變.

也可以將該數據庫備份至output.sql,也稱為重定向

  1. sqlite3.exe test.db3 >output.sql 

***可以將數據庫保存為test.db3即可。

下面講解如何通過Qt來訪問剛才建立的數據庫:

  1. QSqlDatabase dbconn = QSqlDatabase::addDatabase("QSQLITE", "testSQLite");     
  2.     dbconn.setDatabaseName("test.db3"); //當前目錄下的test.db3數據庫文件     
  3.     //SQLite數據庫文件可用SQLite的命令行工具(c:\sqlite3.exe 數據庫名)或用SQLite GUI工具創建,SQLiteSpy     
  4.  
  5.     if(!dbconn.open())     
  6.     {     
  7.              
  8.         return;     
  9.     }     
  10.  
  11.     QTableView *view;     
  12.     QSqlTableModel *model;     
  13.     view = new QTableView();     
  14.     model = new QSqlTableModel(this,dbconn);     
  15.     model->setTable("test");     
  16.     model->select();     
  17.     view->setModel(model);    
  18.  
  19. 也可以直接訪問內存得到:如  
  20.  
  21. QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");  
  22.     db.setDatabaseName(":memory:");  
  23.     if (!db.open()) {  
  24.         QMessageBox::critical(0, qApp->tr("Cannot open database"),  
  25.             qApp->tr("Unable to establish a database connection.\n"  
  26.                      "This example needs SQLite support. Please read "  
  27.                      "the Qt SQL driver documentation for information how "  
  28.                      "to build it.\n\n"  
  29.                      "Click Cancel to exit."), QMessageBox::Cancel);  
  30.         return false;  
  31.     }  
  32.  
  33.     QSqlQuery query;  
  34.     query.exec("create table person (id int primary key, "  
  35.                "firstname varchar(20), lastname varchar(20))");  
  36.     query.exec("insert into person values(101, 'Danny', 'Young')");  
  37.     query.exec("insert into person values(102, 'Christine', 'Holand')");  
  38.  
  39.     query.exec("create table images (locationid int, file varchar(20))");  
  40.     query.exec("insert into images values(0, 'images/oslo.png')");  
  41.     query.exec("insert into images values(1, 'images/brisbane.png')"); 

以下的操作只是往數據庫中添加數據的插入操作.如果想進一步學習,請查找相當資料。

在這里我還提拱和種可以訪問mysql的方法.

首先要在Qt安裝好mysql的插件.

去網上下載:mingw-utils-0.3

然后將解包后在其bin目錄下找到reimp.exe,拷貝到mingw的bin目錄下。而且要將mingw的bin目錄加到classpath下.

則可以在cmd下使用如下命令:

  1. t> reimp -d libmysql.lib  
  2. t>dlltool -k -d libmysql.def -l libmysql.a 

注意:t的目錄是mysql安裝目錄下。我的目錄為D:\MySQL\lib\opt(而且這些目錄中間不能有空格,否則得不到libmysql.a

然后轉到Qt的目錄下(我的為D:\Qt\4.3.2\src\plugins\sqldrivers\mysql).

運行如下命令:

  1. qmake -o Makefile "INCLUDEPATH+=D:\MySQL\lib\include" "LIBS+=D:\MySQL\lib\lib\opt\LIBMYSQL.a" mysql.pro  
  2. mingw32-make 

這樣就在D:\Qt\4.3.2\plugins\sqldrivers目錄下生成libqsqlmysql4.a和qsqlmysql4.dll了.

然后就是運行一個連接到mysql數據庫,測試是否成功.

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 使用mysql數據庫驅動   
  2. db.setHostName("localhost");  
  3. db.setDatabaseName("test"); // 我們之前建立的數據庫  
  4. db.setUserName("root"); // 我們創建的 yunfan 用戶名  
  5. db.setPassword("123"); // yunfan 用戶的密碼  
  6. bool ok = db.open(); // 嘗試連接數據庫  
  7. if(ok) { // 這里用yunfan已經成功連上數據庫  
  8. QSqlQuery query; // 新建一個查詢的實例  
  9. if(query.exec("select * from t_customer")){ // 嘗試列出 employee 表的所有記錄  
  10. // 本次查詢成功  
  11.    int numRows = 0; // 詢問數據庫驅動,是否驅動含有某種特性   
  12.    if(db.driver()->hasFeature(QSqlDriver::QuerySize)){  
  13.     numRows = query.size(); // 如果支持結果影響的行數,那么直接記錄下來  
  14.    } else {  
  15.     query.last(); //否則定位到結果***,qt 文檔說,這個方法非常慢  
  16.     numRows = query.at() + 1;  
  17.    }  
  18.    QString id, lname, fname, phone;   
  19.    QDateTime dob;  
  20.    display.append("===========================================");  
  21.    display.append(QString::fromLocal8Bit(" account | password | cname | cbalance"));  
  22.    display.append("--------------------------------------");  
  23.    while(query.next()) { // 定位結果到下一條記錄  
  24.     id = query.value(0).toString();  
  25.     //lname = QString::fromLocal8Bit(query.value(1).toByteArray());  
  26.     //fname = QString::fromLocal8Bit(query.value(2).toByteArray());  
  27.     //dob = query.value(3).toDateTime();  
  28.     //phone = QString::fromLocal8Bit(query.value(4).toByteArray());  
  29.     QString result = id ;//+ " " + fname + lname + " " + (dob.toString()) + " "+phone;  
  30.     display.append(result);  
  31.    }  
  32.    display.append("============================================");  
  33.    display.append(QString("totally %1 rows").arg( numRows));  
  34. } else { // 如果查詢失敗,用下面的方法得到具體數據庫返回的原因  
  35.    QSqlError error = query.lastError();  
  36.    display.append("From mysql database: " + error.databaseText());  
  37. }  
  38. } else{ // 打開數據庫失敗,顯示數據庫返回的失敗描述  
  39. display.append("cannot open database.");  
  40. display.append("Reason: " + db.lastError().databaseText());  

這只是其中一部分核心代碼.

小結:關于Qt數據庫操作 連接SQLiteMySQL數據庫實例的內容介紹完了,希望本文對你再學習過程中有所幫助!

責任編輯:zhaolei 來源: CSDN博客
相關推薦

2011-07-05 14:46:34

2011-07-26 18:11:56

iPhone Sqlite 數據庫

2011-06-21 15:11:04

QT 數據庫

2011-07-05 18:04:45

QT Mysql

2011-06-27 13:49:43

Qt 數據庫 QSqlQueryM

2011-06-27 13:32:21

Qt 數據庫 QSqlQueryM

2011-07-05 16:08:10

2011-07-05 18:11:13

Qt 數據庫

2011-07-01 14:06:57

Qt sqlite

2011-06-27 12:56:28

2011-08-30 14:15:34

QTSQLite數據庫

2011-06-10 10:31:57

QT mysql linux

2011-07-05 10:03:00

Qt MYSQL 數據庫

2010-05-14 11:12:16

連接MySql

2011-07-07 16:42:38

iPhone Sqlite3 數據庫

2011-06-21 15:31:04

Qt 數據庫 SQL

2020-09-03 11:35:22

SQLiteMySQLPostgreSQL

2010-03-04 15:31:44

Python SQLI

2011-07-01 10:55:25

Qt 登陸窗口 界面

2010-11-29 11:47:26

連接Sybase數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产日韩欧美 | 中文字幕 亚洲一区 | 国产一级影片 | 污视频免费在线观看 | 农村真人裸体丰满少妇毛片 | 国产欧美在线 | 四虎影院新网址 | 成人高清在线视频 | 99pao成人国产永久免费视频 | 日本黄色影片在线观看 | 成人做爰69片免费观看 | 精品免费国产一区二区三区四区 | 老司机精品福利视频 | 亚洲欧美激情国产综合久久久 | 自拍偷拍在线视频 | 精品一区二区三区四区五区 | 亚洲欧洲一区 | 中文字幕一区二区三区在线观看 | 日本中文字幕一区 | 国产一区不卡 | 91高清免费观看 | 亚洲不卡av在线 | 日韩欧美专区 | 成人av在线大片 | 91麻豆精品国产91久久久更新资源速度超快 | 精品国产一区二区三区日日嗨 | 日韩中文一区 | 国产精品欧美精品日韩精品 | 成人av电影在线 | 91国自产| 精品久久久久久国产 | 看一级毛片 | 国产一区二区在线播放 | 日本超碰 | 欧美精品一区二区三区在线播放 | 四虎免费视频 | 日韩在线电影 | 四虎在线观看 | 99久久精品免费 | 9porny九色视频自拍 | 亚洲福利在线观看 |