Qt sqlite Qtsql的transaction

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  

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(); //回滚
             }
        }
    }
    




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值