使用QT-QSqlQuery::value()遇到的问题

部署运行你感兴趣的模型镜像

在实现客户端间好友添加功能时,我通过以下函数想实现数据库对好友信息的保存

bool OpeDB::handleAddFriend_repound(const char *pername, const char *name)
{
    // pername 被添加方  name 申请添加方
    qDebug() << pername << " " << name;
    if (pername == NULL || name == NULL)
    {
        return false;
    }
    // 先找到对应名字的ID
    QString data = QString("select id from usrInfo where name='%1' or name='%2'").arg(pername).arg(name);
    qDebug() << data;
    QSqlQuery query;
    query.exec(data);
    query.next();
    // 再在friend表格中添加好友关系
    qDebug() << query.value(0).toInt() << " " << query.value(1).toInt();
    data = QString("insert into friend(id, friendId) values('%1', '%2')").arg(query.value(0).toInt()).arg(query.value(1).toInt());
    query.exec(data);
    return true;
}
 

但是我遇到一个问题,代码 qDebug()<<query.value(0).toInt()<<" "<<query.value(1).toInt();访问不到两个数据,让我卡了很久。

后面通过使用GPT才发现,原来是我对.value()的理解是错误的

它里面的数字是访问query所在的那行数据的元素

文字表达有点晦涩,上图:

通过value函数是没办法访问到rose.id的

 所以,要么读取先读取jack的id后query.next(),再读取rose的id,要么修改select语句让其直接读取两个用户id

读取两个用户id的语句如下

QString data = QString("select u1.id, u2.id from usrInfo u1, usrInfo u2 where u1.name='%1' and u2.name='%2'").arg(pername).arg(name);
 

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值