ave*_*joe 4 select qt exec prepared-statement
以下代码失败QSqlQuery::exec().当我在没有预准备语句参数的情况下运行查询时,它会返回正确的结果,可以通过预期获得QSqlQuery::next()
executedQuery()报告":username"实际上没有被参数替换,但是有一个?(是否应该,因为查询没有成功执行?).
db_是一个QSqlDatabase类变量和isOpen()报告true.Qt框架版本是4.7.3.
DBSql::userInfo(const QString &username,
QString &passwd,
QString &name,
UserPriv priv)
{
QSqlQuery userQuery(db_);
const QString userStr("SELECT u.id, u.fullname, u.password, p.description \
FROM users u INNER JOIN privilege p ON u.privilege_id = p.id \
WHERE u.username = :username");
userQuery.bindValue(":username", username);
if (!userQuery.prepare(userStr))
std::cout << "prepare failed" << std::endl;
if (userQuery.exec()) {
while (userQuery.next()) {
userId = userQuery.value(0).toInt();
name = userQuery.value(1).toString();
passwd = userQuery.value(2).toString();
const QString privilegeDesc = userQuery.value(3).toString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5238 次 |
| 最近记录: |