资源简介
QSqlDatabase的进一步封装
实现了多线程支持以及更加简单的操作

代码片段和文件信息
// Qt lib import
#include
#include
#include
// JasonQt lib import
#include “JasonQt/JasonQt_Database.h“
int main(int argc char *argv[])
{
QCoreApplication a(argc argv);
/*
* 注:关于附加参数
* 这是可以不写的,如果要写的话,可以参考这个:
*
* 单次打开数据库最大时间:也就是最大open的时间,对于某些数据库,长时间open但不使用,不仅会造成资源浪费还会意外断开。在设置了60 * 1000后,且60秒内未进行查询,就自动断开。
* 多线程支持:简单的说就是高级点的数据库,比如 MySql 写 JasonQt_Database::QueryMultiMode ;低级的,比如 Sqlite ,写 JasonQt_Database::QuerySingleMode 就可以了。
* 最小等待时间:对于某些数据库,比如Sqlite,密集查询时可能出错,此时可以适当的提升两次查询之间的最小等待时间,比如10ms
*/
// Sqlite的连接方式 类型 连接名 Sqlite文件路径 单次打开数据库最大时间 多线程支持 最小等待时间
JasonQt_Database::Control control({ “QSQLITE“ “TestDB“ “/Users/Jason/test.db“ } { 60 * 1000 JasonQt_Database::QuerySingleMode 10});
// MySql的连接方式 类型 连接名 IP 数据库 用户名 密码
// JasonQt_Database::Control control({ “QMYSQL“ “TestDB“ “localhost“ “JasonDB“ “root“ “YourPassword“ });
// SqlServer的连接方式 类型 连接名 数据库 数据库名 用户名 密码
// JasonQt_Database::Control control({ “QODBC“ “TestDB“ “Driver={SQL SERVER};server=iZ23kn6vmgkZ\\TEST;database=test;uid=sa;pwd=YourPassword;“ });
auto insert = [&]()
{
auto query(control.query()); // 这里的query在解引用( -> 或者 * )后返回的是 QSqlQuery ,直接用就可以了,不需要单独打开数据库或者其他的初始化
query->prepare(“insert into Test1 values(?)“); // 模拟插入操作
query->addBindValue(rand() % 1280);
if(!query->exec())
{
qDebug() << “Error“ << __LINE__;
}
query->clear();
query->prepare(“insert into Test2 values(NULL ? ?)“);
query->addBindValue(rand() % 1280);
QString buf;
for(int now = 0; now < 50; now++)
{
buf.append(‘a‘ + (rand() % 26));
}
query->addBindValue(buf);
if(!query->exec())
{
qDebug() << “Error“ << __LINE__;
}
};
auto delete_ = [&]()
{
auto query(control.query());
query->prepare(“delete from Test1 where data = ?“);
query->addBindValue(rand() % 1280);
if(!query->exec())
{
qDebug() << “Error“ << __LINE__;
}
query->clear();
query->prepare(“delete from Test2 where data1 = ?“);
query->addBindValue(rand() % 1280);
if(!query->exec())
{
qDebug() << “Error“ << __LINE__;
}
};
auto update = [&]()
{
auto query(control.query());
query->prepare(“update Test1 set data = ? where data = ?“);
query->addBindValue(rand() % 1280);
query->addBindValue(rand() % 1280);
if(!query->exec())
{
qDebug() << “Error“ << __LINE__;
}
query->clear();
query->prepare(“update Test2 set data1 = ? data2 = ? where dat
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-04-05 21:25 JasonQt_Databa
文件 6148 2015-04-05 21:25 JasonQt_Databa
目录 0 2015-04-05 21:25 JasonQt_Databa
文件 7789 2015-04-05 21:18 JasonQt_Databa
文件 3709 2015-04-05 20:59 JasonQt_Databa
文件 434 2015-04-05 20:57 JasonQt_Databa
文件 5421 2015-04-05 21:24 JasonQt_Databa
文件 1006 2015-03-17 10:50 JasonQt_Databa
相关资源
- 在线词典项目v1.1.zip
- php mysql经典留言本源码 代码通俗易懂
- SQLTOOLS2.0汉化版(1433连接工具)
- PHP MySQL 物流管理 数据库文件
- PHP MySQL 技术 毕业设计 物流管理系统
- 4秒100万条数据导入SQL数据库
- php mysql 在线作业管理系统
- MySql.data.dll +使用说明
- pb 酒店管理系统(代码、sql数据库)
- 图书管理系统 PHP MYSQL实现
- [PHP MySQL]图书馆管理系统前后台全部代
- sql数据库导出到txt文件
- 人事管理系统数据库文件SQL2000
- sqlserver学习ppt 全套共18个
- 门禁系统论文及数据库sqlserver2005数据
- labview中LABSQL数据库的使用
- C 开发的SQL数据库实现的公司员工信
- 企业人事管理系统【SQLServer数据库+课
- 数据字典导出工具 导出SqlServer数据库
- 通过SqlBulkCopy对象从Excel中批量导入到
- 基于PHP+MYSQL的学生成绩管理系统
- 批处理执行sql语句
- Spring+Struts2+Hibernate人力资源管理系统
- 我自己写php mysql聊天室
- mysql 数据库连接池
- sql server 2000经典范例
- 设备管理系统(SQL体验版)
- 完整的php mysql js用户注册与登陆
- MySQL数据库用户在线注册系统
- 东城大学在线答疑系统struts2+spring带
评论
共有 条评论