QSqlQuery禁止非SELECT查询
QSqlQuery forbid non-SELECT query
我正在寻找一种方法来禁止对QSqlQuery
对象进行非SELECT查询。
我知道QSqlQuery::isSelect
只有在QSqlQuery::exec
(伤害已经在这里完成)。
那么,有什么方法可以做到这一点吗?或者我必须明确地验证query string
。
谢谢。
根据我的经验,即使在运行QSqlQuery::exec
命令之前,QSqlQuery::isSelect
函数也能很好地工作。但仅当使用查询初始化对象时。即:
QSqlQuery query("SELECT * FROM someTable");
qDebug() << query.isSelect(); //Outputs True
或
QString queryString = "SELECT * FROM someTable";
QSqlQuery query(queryString);
qDebug() << query.isSelect(); //Outputs True
如果使用prepare函数并将查询字符串传递给它,则必须自己验证查询字符串。即;
QSqlQuery query;
query.prepare("SELECT * FROM someTable");
qDebug() << query.isSelect(); //Outputs False
如果您真的想避免手动验证查询字符串,则必须避免使用QSqlQuery::prepare
和QSqlQuery::bindValue
函数,而是自己创建查询,并使用创建的QString
初始化QSqlQuery
对象。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 查询SQLite数据库中的日期
- 如何在ArangoDb AQL查询中指定数据库
- Qt SQLite没有查询或参数计数不匹配
- 如何使用c++在VS 2019上运行SQL查询
- 从返回的顶点缓冲区查询顶点结构
- 以非特权用户身份查询 NTFS 特殊文件的元数据?
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- SQLite3 在 c++ 中输出 SELECT 上的空列表
- 查询 NFS 上的提升进程间::file_lock
- Qt JSON – 从子项查询
- 在 c++ 中解决段树以外的范围查询的有效方法是什么?
- 无法从 Win10 中的 IDirectDraw7 查询 IDirect3D7
- 如何在 sys/select.h 中正确使用
- CQL SELECT 查询在连接到暂存 Cassandra 服务器时挂起
- MySQL C++连接器使用SELECT查询获取字符串
- QSqlQuery禁止非SELECT查询
- select查询在编辑中总是返回-1
- SQLite3 c++对5个双字段的SELECT查询的性能问题
- 用c++在SQL Server上运行select查询最快的方式是什么?