首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSqlQuery禁止非选择查询

QSqlQuery禁止非选择查询
EN

Stack Overflow用户
提问于 2014-09-24 17:18:11
回答 1查看 133关注 0票数 1

我正在寻找一种禁止对QSqlQuery对象进行非选择查询的方法。

我知道QSqlQuery::isSelect只有在QSqlQuery::exec (这里已经造成的损坏)之后才有效。

那么,有没有办法这样做,或者我必须显式地验证query string

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-25 10:43:34

根据我的经验,QSqlQuery::isSelect函数在运行QSqlQuery::exec命令之前运行良好。但是,只有在使用查询初始化对象时。即:

代码语言:javascript
复制
QSqlQuery query("SELECT * FROM someTable");
qDebug() << query.isSelect(); //Outputs True

代码语言:javascript
复制
QString queryString = "SELECT * FROM someTable";
QSqlQuery query(queryString);
qDebug() << query.isSelect(); //Outputs True

如果使用准备函数并将查询字符串传递给它,则必须亲自验证查询字符串。即;

代码语言:javascript
复制
QSqlQuery query;
query.prepare("SELECT * FROM someTable");
qDebug() << query.isSelect(); //Outputs False

如果您确实希望避免对查询字符串进行手动验证,则必须避免使用QSqlQuery::prepareQSqlQuery::bindValue函数,而是自己创建查询,并使用所创建的QString初始化QSqlQuery对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26022804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档