Qt4访问sqlite数据库
sqlite简介
sqlite 是一款轻量级的、基于文件的嵌入式数据库,2000年就已经诞生,经过7年多的发展,直到今天已经成为最流行的嵌入式数据库,包括google在内的公司 在其桌面软件中亦使用 sqlite 存储用户数据。由此可以看出,已经没有任何理由去怀疑sqlite的稳定性了。
sqlite的优势
1. 免配置,和access一样,只要把数据库文件通过ftp上传到服务器上就可以使用,不需要服务器的额外支持
2. 备份方便,因为只是一个文件,只要复制一份该文件,就能备份整个数据库
3. 虽然是轻量级数据库,但他支持最大 2tb 的单个库文件。
4. 快,无与伦比的快。经过实际测试,在几百万记录的情况下,sqlite的插入和查询速度和 mysql 不分上下,快于 sql server,10倍于 access (但这并不意味着它可以替代 sql server )
用QT操作sqlite
由于sqlite属于轻量级的数据库,不需要配置,不需要安装,也不需要管理员,所以也就没必要像操作mysql等数据库一样的设置主机,用户和密码了。样例如下:
#include <QApplication>
#include <QTextEdit>
#include <QString>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlDriver>
#include <QDateTime>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTextEdit display;
display.resize(400, 160);
display.show(); //下面进行数据库的设置
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); //使用sqlite数据库驱动
db.setDatabaseName("test"); //我们之前建立的数据库
bool ok = db.open(); //尝试连接数据库
if (ok)
{ //这里用text已经成功连上数据库
QSqlQuery query; //新建一个查询的实例
if (query.exec("select * from student")) //尝试列出 student 表的所有记录
{ //本次查询成功
int numRows = 0; //询问数据库驱动,是否驱动含有某种特性
if (db.driver()->hasFeature(QSqlDriver::QuerySize))
{
numRows = query.size(); //如果支持结果影响的行数,那么直接记录下来
}
else
{
query.last(); //否则定位到结果最后,qt 文档说,这个方法非常慢
numRows = query.at() + 1;
query.seek(-1);
}
QString name, age;
display.append("===========================================");
while(query.next())
{ //定位结果到下一条记录
name = query.value(0).toString();
age = query.value(1).toString();
QString result = name + " " + age;
display.append(result);
}
display.append("===========================================");
display.append(QString("totally %1 rows").arg(numRows) );
}
else
{ //如果查询失败,用下面的方法得到具体数据库返回的原因
QSqlError error = query.lastError();
display.append("From mysql database: " + error.databaseText());
}
}
else
{ //打开数据库失败,显示数据库返回的失败描述
display.append("cannot open database.");
display.append("Reason: " + db.lastError().databaseText());
}
QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
return app.exec();
}
转载于:https://www.cnblogs.com/bennylam/archive/2010/03/22/1691355.html
Qt4访问sqlite数据库相关推荐
- Qt5 开发 iOS 应用之访问 SQLite 数据库
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.Andr ...
- QT 访问sqlite数据库
QT 访问sqlite数据库 1.sqlite数据库安装 首先,通过sqlite3命令查看 sqlite数据库是否已经安装,若没有安装,则通过 sudo apt install 指令进行安装. 2.准 ...
- Qt访问SQLite数据库
// 建立并打开数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");db.setDatabaseName(" ...
- idea中链接mysql查询_在Idea中编写Java程序连接查询Sqlite数据库
1.使用SqliteSpy建立好数据库文件SqliteSpy运行界面 2.准备好一个空文件夹存放java工程和数据库文件,准备好数据库驱动jar包拷贝到文件夹中sqlite数据库文件和驱动 3.在Id ...
- QT读写Sqlite数据库三种方式
QT对一些基本的数据库的访问封装,可谓是极大的方便的我们开发人员,现在我们就来说下QT对Sqlite这个数据库的读写,Sqlite是一个比较小型的本地数据库,对于保存一些软件配置参数或量不是很大的数据 ...
- 开发SQLite数据库常用的管理工具
虽然说一直在用Sql Server2000和2005开发项目,但是某些时候想开发一些小的应用程序,用这种数据库就不合适了,想想可以用ACCESS做数据库, 但是一直觉得ACCESS是过去的东西,和C# ...
- 在Android中查看和管理sqlite数据库
在Android中查看和管理sqlite数据库 在Android中可以使用Eclipse插件DDMS来查看,也可以使用Android工具包中的adb工具来查看.android项目中的sqlite数据库 ...
- QT读写Sqlite数据库的三种方式
QT对一些基本的数据库的访问封装,可谓是极大的方便的我们开发人员,现在我们就来说下QT对Sqlite这个数据库的读写,Sqlite是一个比较小型的本地数据库,对于保存一些软件配置参数或量不是很大的数据 ...
- python sqlite3 多线程_在python中多线程访问sqlite3数据库
Python标准库中有sqlite3模块,可见对此数据库的认可.不过,此模块在使用时也有限制,同一个数据库连接,不能在不同线程中共享. import threading import sqlite3 ...
最新文章
- Spark的RDD 文件读取与保存
- 内存256KB设备也能人脸检测,微软提出用RNN代替CNN | NeurIPS 2020
- 蒙版遮住全屏(包括导航栏)
- 【存储知识学习】第一章存储系统的前世今生--《大话存储》阅读笔记
- Java Class 文件结构
- asp.net asp:TextBox控件绑定值后,获取不到新值问题解决方法
- Kubernetes之StatefulSet
- Qt 学习之路 :Qt 线程相关类
- mysql命令单词_mysql命令大全
- 【JAVA】在jar文件中引用图片等外部资源的问题
- matlab聚类分析工具箱,matlab聚类工具箱
- 什么是分布式负载均衡 ?
- 在传统软件公司十年深恶痛绝的感受(转)
- 桩基施工市场现状研究分析报告-
- 计算机无法找到扫描仪和照相机,我的电脑不显示扫描仪和摄像头的原因及解决方法...
- zeppelin报错jdk版本低
- 【asm基础】nasm和masm的一些区别
- 如何制作地图符号的实验报告
- skylake服务器CPU型号芯片,Skylake与Kaby Lake顶级处理器到底有多大差别?Intel i7-7700K评测...
- 计算机和计算机思维理论考试试题科目一,2020税务师考试答题方式、输入法要求及考试题型!...