C 跨平台库QT学习 使用嵌入式数据库SQLite

C 跨平台库QT学习 使用嵌入式数据库SQLite

首页游戏大全火狐棋牌77qp更新时间:2024-05-11

一、SQLite

SQLite是一个轻量级的嵌入型数据库,不需要服务端,可以运行在很多资源非常小的嵌入式系统中。

SQLite的管理客户端,可以使用:

等。

二、QT使用SQLite过程1. 引入sqlite

修改.pro文件:

QT = sql

引用的头文件:

#include <QSql> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError>2. 查看支持的数据库类型

qDebug() << QSqlDatabase::drivers();

我的电脑输出的值有:

("QSQLITE", "QODBC", "QODBC3", "QPSQL", "QPSQL7")

里面的QSQLITE表示支持SQLite数据库。

3. 连接、打开数据库

//建立并打开数据库 QSqlDatabase database; database = QSqlDatabase::addDatabase("QSQLITE"); database.setDatabaseName("test.db"); if (!database.open()) { qDebug() << "Error: Failed to connect database." << database.lastError(); } else { qDebug() << "Succeed to connect database." ; }

4. 执行sql语句 QSqlQuery::exec()(1) 创建表

//创建表格 QSqlQuery sql_query; if(!sql_query.exec("create table users(id int primary key, name text, age int)")) { qDebug() << "Error: Fail to create table."<< sql_query.lastError(); } else { qDebug() << "Table created!"; }(2) 插入数据

if(!sql_query.exec("INSERT INTO users VALUES(1, \"张三\", 30)")) { qDebug() << sql_query.lastError(); } else { qDebug() << "inserted success!"; } if(!sql_query.exec("INSERT INTO users VALUES(2, \"李四\", 30)")) { qDebug() << sql_query.lastError(); } else { qDebug() << "inserted success!"; }(3) 查询语句

//查询数据 sql_query.exec("select * from users"); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { while(sql_query.next()) { int id = sql_query.value(0).toInt(); QString name = sql_query.value(1).toString(); int age = sql_query.value(2).toInt(); qDebug()<<QString("id:%1 name:%2 age:%3").arg(id).arg(name).arg(age); } }(4) 删除数据

sql_query.exec("delete from users where id = 1"); if(!sql_query.exec()) { qDebug()<<sql_query.lastError(); } else { qDebug()<<"deleted!"; }(5) 更新数据

sql_query.exec("update users set name = \"myname\" where id = 1"); if(!sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "updated!"; }(6) 删除表

sql_query.exec("drop table users"); if(sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "table droped"; } 5. 关闭连接

database.close();

运行效果:会自动生成一个test.db数据库文件。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved