查看完整版本: [-- 自用的数据库访问封装类(20170622更新,修复连接MySql等,未加端口的问题) --]

QTCN开发网 -> Qt代码秀 -> 自用的数据库访问封装类(20170622更新,修复连接MySql等,未加端口的问题) [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

realfan 2016-12-16 15:59

自用的数据库访问封装类(20170622更新,修复连接MySql等,未加端口的问题)


[attachment=17313][attachment=17314]

2017.06.22更新,修复连接MySql等,未加端口的问题。
注:本代码需要C++11支持,否则不能用
CDBProcess db;
db.openDB("mytest.db");
void * pQry = db.openRecordsetBySql("select * from tb1");
while(db.moveNext(pQry))
{
    db.readFieldsValueFromRec("sn",            iSN,          //int
                                                       "name",      strName, //QString
                                                       "height",    dHeight,   //double
                                                       "birthday", dt,             //QDateTime
                                                       "photo",     ba);           //QByteArray

}
db.closeRecordset(pQry);
=====================================================
db.addFieldsValueToTbl("TB1",                  //表名
                        "sn",           iSN,
                        "name",      strName,
                        "height",    dHeight,
                        "birthday", dt,
                        "photo",     ba);

====================================================
db.updateTblFieldsValue("TB1", "WHERE sn=20", "height", dHeight,
                                                                                      "photo",   ba);   



XChinux 2016-12-17 08:25
已更新到tianchi库

圣域天子 2016-12-17 23:37
关于数据库连接,我最近发现一个很严重的问题:
当程序连接另一台机器上的数据库时,一旦局域网处于很不稳定的状态下,
数据库连接会断开,如果重新open会造成程序崩溃。
数据库是postgresql, 运行在 ubuntu14.04上
Qt程序是5.7, mingw32版编译。
崩溃时大多是提示DB的版本号不符、指令长度错误(负值或几个T的大小)、或SSL错误等。
个人猜测可能是网络数据传输中丢失内容或内容出错了。

以往在局域网很稳定时,与DB服务器之间,就算是DB服务器重启,拨网线最多只引起数据库操作失败的错误提示。
但如今程序却频频崩溃。

此现象当程序与db处于同一台机器时,没有出现过。

zhuifengwy 2016-12-28 16:27
感谢

liudianwu 2016-12-30 17:25
圣域天子:关于数据库连接,我最近发现一个很严重的问题:
当程序连接另一台机器上的数据库时,一旦局域网处于很不稳定的状态下,
数据库连接会断开,如果重新open会造成程序崩溃。
数据库是postgresql, 运行在 ubuntu14.04上
Qt程序是5.7, mingw32版编译。
....... (2016-12-17 23:37) 

我也遇到过,我的是mysql数据库

zhuifengwy 2017-01-09 08:04
用在sqlite数据库中进行白条级别的更新操作,会耗时达40秒,请问如何能提高该操作效率

zhuifengwy 2017-01-09 15:48
用事务解决了

请叫我乔帮主 2017-02-08 09:22

yq5858588 2017-06-10 17:23
D:\qtworkspace\mlayout\sqlhelper\DBProcess.h:77: error: C2770: “T QVariant::value(void) const”的显式 模板 参数无效

yq5858588 2017-06-10 17:24
怎么回事啊  出现了上面的问题哦

realfan 2017-06-11 08:55
yq5858588:D:\qtworkspace\mlayout\sqlhelper\DBProcess.h:77: error: C2770: “T QVariant::value(void) const”的显式 模板 参数无效 (2017-06-10 17:23) 

需要C++11,注意工程配置

realfan 2017-06-11 08:55
yq5858588:怎么回事啊  出现了上面的问题哦 (2017-06-10 17:24) 

需要C++11,注意工程配置

hunterzf 2017-06-12 16:02
谢谢楼主,辛苦了

yq5858588 2017-06-15 17:44
realfan:需要C++11,注意工程配置 (2017-06-11 08:55) 

我已经配置C++11了  还是不行啊  不知道怎么回事

realfan 2017-06-19 09:52
yq5858588:我已经配置C++11了  还是不行啊  不知道怎么回事 (2017-06-15 17:44) 

我一直在用,都是好的。你用的什么环境,可以把最基本的工程发给我看一下。

yq5858588 2017-06-22 13:33
realfan:我一直在用,都是好的。你用的什么环境,可以把最基本的工程发给我看一下。 (2017-06-19 09:52) 

怎么发你呀   你qq留给我  我发你

realfan 2017-06-23 09:23
yq5858588:怎么发你呀   你qq留给我  我发你 (2017-06-22 13:33) 

发我邮箱吧

john123456 2019-07-24 18:49
学习学习

hzy495261330 2021-01-20 18:13
bool readFieldsValueFromRec(const void* p, const QString str, T& t, Args& ... args) const
    {
        const QSqlQuery* pQry = static_cast<const QSqlQuery*>(p);
        if (nullptr == pQry || false == pQry->isValid())
        {
            return false;
        }
        t = pQry->value(str).value<T>();//显示“QVariant::value”: 未找到匹配的重载函数
        bool bRet = readFieldsValueFromRec(p, args...);
        return bRet;
    }
//显示“QVariant::value”: 未找到匹配的重载函数,是怎么回事呢

wting_0128 2021-02-11 02:38


crazycc 2021-03-28 16:52
liudianwu:我也遇到过,我的是mysql数据库 (2016-12-30 17:25) 

这个问题我也遇到了,大神是怎么解决的?

jesse2021 2021-07-13 14:01
hzy495261330:bool readFieldsValueFromRec(const void* p, const QString str, T& t, Args& ... args) const
    {
        const QSqlQuery* pQry = static_cast<const QSqlQuery*>(p);
     .. (2021-01-20 18:13) 

这个问题解决了吗?

lanmanck 2022-03-09 08:55
crazycc:这个问题我也遇到了,大神是怎么解决的? (2021-03-28 16:52) 

重开一个db,delete老的再new新的

mervyn807 2022-05-09 09:58
看了下,写的不错。但是还可以改进不少功能,再封装一层

skb123 2022-07-18 12:26
MySQL用的挺多的,学习一下,感谢分享

zipl1985 2022-07-23 12:00
学习一下,谢谢

gr582679633 2022-08-16 09:15
谢谢楼主


查看完整版本: [-- 自用的数据库访问封装类(20170622更新,修复连接MySql等,未加端口的问题) --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled