qt *** 作sqlite 如何使用vacuum命令?

qt *** 作sqlite 如何使用vacuum命令?,第1张

qt *** 作sqlite 如何使用vacuum命令

使用Qt *** 作SQLite,可以使用QSqlQuery对象来执行VACUUM命令。例如:

// 创建一个数据库连接 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE")db.setDatabaseName("mydb.sqlite")if(!db.open()) { qDebug() <<"Error: connection with database fail"} else { qDebug() <<"Database: connection ok"} // 执行 VACUUM 命令 QString queryStr = "VACUUM"QSqlQuery query(queryStr, db)if (!query.exec()) { qDebug() <<"Error: Vacuum failed" } else { qDebug() <<"Vacuum successful!" }

1)创建ui界面 (2)导入头文件 一、自动提交模式 二、手动提交模式 (1)构造函数中的代码 (2) “提交”按钮的槽函数 在ui界面导入一个Table View。 这个控件可以显示表格,在代码中我们通过setHeaderData()函数可以自定义每列的名称。 需要用到以下头文件,QSqlDatabase用于连接数据库,QMessageBox用于d出对话框,QSqlError用于显示数据库的错误信息,QSqlQuery和QSqlTableModel用于 *** 作数据库。 #include <QWidget>#include <QSqlDatabase>#include <QMessageBox>#include <QSqlError>#include <QString>#include <QSqlQuery>#include <QSqlTableModel>在Qt窗口显示的表格中改动数据,然后点击回车,数据库中的表格中的数据就自动更新了。 注意,在这里必须是敲击回车才会进行数据库的更新,如果直接用鼠标切换到其他的地方是不会更新数据库的。 //连接数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL")db.setHostName("127.0.0.1")db.setUserName("root")db.setPassword("123456")db.setDatabaseName("aaa2")if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text())} //实例化model model = new QSqlTableModel(this)//将模型设置到视图 ui->tableView->setModel(model)//给model设置数据表,前提条件是数据库已经打开了 model->setTable("student")

qt可以实现连接各种数据库,这里介绍qt自带的一种数据库(Qsqlite)

#include<QSqlQuery>

#include<QObject>

#include<QVariantList>

#include<QDebug>

#include<QSqlError>

#include<QTextCodec>

#include<QObject>

staticboolcreateConnection()

{QSqlDatabasedb=QSqlDatabase::addDatabase("QSQLITE")

db.setDatabaseName("mytest.db")

if(!db.open())

returnfalse

QSqlQueryquery

//query.exec(QObject::tr("createtablestudent(idintprimarykey,namevchar)"))

//query.exec(QObject::tr("insertintostudentvalues(0,'刘')"))

////query.exec(QObject::tr("insertintostudentvalues(1,'刚')"))

//query.exec(QObject::tr("insertintostudentvalues(2,'红')"))

//query.prepare("insertintostudentvalues(?,?)")

//-------------------------------------------------------

//通过下面这段代码可以实现向数据库插入变量

//--------------------------------------------------------

QVariantListages

intx1,x2,x3,x4

x1=12

x2=13

x3=14

x4=15

ages<<x1<<x2<<x3<<x4

query.addBindValue(ages)

QVariantListnames

names<<QObject::tr("小王")<<QObject::tr("小明")<<QObject::tr("小张")<<QObject::tr("小新")//如果要提交空串,用QVariant(QVariant::String)代替名字

query.addBindValue(names)

if(!query.execBatch())//进行批处理,如果出错就输出错误

qDebug()<<query.lastError()

returntrue

}

#endif//DATABASE_H

然后用QSqlTableModel实现数据库数据显示


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10808300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存