之前使用資料庫用的都是mysql,覺得挺方便的,但最近做的程式要在linux開發板上跑,就使用了qt自帶的輕量級資料庫sqlite
,但使用過程中遇到了一些問題:
標頭檔案:
#include
qsqldatabase db;
public:
explicit
widget(qwidget *parent = 0);
~widget();
void databaseconnect();
原始檔:
void frmmain::databaseconnect()
qsqlquery query;
qstring connectdb = qstring("create table entedata (num int primary key auto_increment,time timestamp,ion int,temperature int,humidity int)");
//新建資料表
if(!query.exec(connectdb))//資料表建立失敗
}
標頭檔案同源**
原始檔:
void frmmain::databaseconnect()
qsqlquery query;
//判斷資料表是否存在,不存在則建立
if(!query.exec("select * from entedata"))
} }
改動點主要在sql語句:
改動前:
create
table entedata (num int
primary
key auto_increment,time
timestamp,ion int,temperature int,humidity int)
改動後:
create
table entedata(num integer
primary
key autoincrement,time
timestamp,ion integer,temperature integer,humidity integer)
1、sqlite中,自動增長是autoincrement
而不是auto_increment
,這裡與mysql不同;
2、sqlite中,int 單獨做資料型別沒問題,做主鍵也沒問題,做主鍵並且需要autoincrement
屬性的話就得是
integer primary key autoincrement
在Qt中使用SQLite資料庫
sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...
Qt框架下使用SQLite資料庫
建立sqlite資料庫,命名為database.db,使用者名為username,密碼為123456 開啟資料庫 建立一張名為user的資料表,資料表有兩個字段,乙個使用者名稱 主鍵 乙個是該使用者對應的密碼,兩個欄位的型別相同,均為字串型別 在user資料表中插入兩條記錄 qsqldatabase...
Qt之SQLite資料庫的使用 2
驅動層為具體的資料庫和sql介面層之間提供了底層的橋梁,主要類包括qt sql模組中的qsqldriver qsqldrivercreator qsqldrivercreatorbase qsqldriverplugin和qsqlresult。qsqldriver是訪問具體sql資料庫的抽象基類,不...