1、加载sqlite数据库
1、下载sqlite-dll(sqlite-dll-win32-x64/x86)/sqlite-shell/sqlite-analyzer
2、将sqlite。dll、sqlite。exe放入可执行目录
3、。pro文件 QT += sql
4、JBDataBase。h #include <Qtsql> / <QSqlQuery>
class JBDataBase
{
public:
bool connectDB();
void insertRecord();
private:
QSqlDataBase m_db;
};
bool JBDataBase::connectDB()
{
m_db = QSqlDatabase::addDataBase("QSQLITE");
m_db.setDatabaseName("JB_DB");
if(!m_db.open())
{
qDebug() << m_db.lastError().text();
retrun false;
}
return true;
}
void JBDdataBase::insertRecord()
{
QsqlQuery query;
query.prepare("INSERT INTO JB_Message(datatime) values(:time)");
query.bindValue(":time", strTime);
query.exec();
}
2、分页
LIMIT (m_currentPage - 1)*20 , 20 ;
2、各数据库取前几条记录(转载自lzz313)
access:
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
读取前10条: select top (10) * from table1 where 1=1
读取后10条: select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
select top (10) * from table1 where 1=1
db2:
select column from table where 1=1 fetch first 10 rows only
mysql:
select * from table1 where 1=1 limit 10
sql server:
读取前10条: select top (10) * from table1 where 1=1
读取后10条: select top (10) * from table1 order by id desc
oracle:
select * from table1 where rownum<=10
3、QtSql的transaction
//execBatch
QSqlQuery query;
query.prepare("INSERT INTO MYDATABASE(INT,NAME,AGE) VALUES(?,?,?)");
QVariantList num;
QVariantList name;
QVariantList age;
num.append("num1");
name.append("name1");
age.append("age1");
num.append("num2");
name.append("name2");
age.append("age2");
query.addBindValue(num) ;
query.addBindvalue(name);
query.addBindValue(age);
query.execBatch();
//Transactions
if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions))
{ //先判断该数据库是否支持事务操作
if(QSqlDatabase::database().transaction()) //启动事务操作
{
//下面执行各种数据库操作
QSqlQuery query;
query.exec("insert into student values (14, 'hello')");
query.exec("delete from student where id = 1");
if(!QSqlDatabase::database().commit())
{
qDebug() << QSqlDatabase::database().lastError(); //提交
if(!QSqlDatabase::database().rollback())
qDebug() << QSqlDatabase::database().lastError(); //回滚
}
}
}