c++ - %n 问题 *** 检测到可写段中的 %n *** C++ i Qt

标签 c++ qt

% n * 检测到可写段中的 %n 问题 * C++ i Qt

我有处理大数据的程序,无法修改。在一个文件中,我们遇到“100% na”和应用程序停止。

当我用调试器检查它时,它返回 * %n in writable segment detected *

我无法更改可见数据,用户必须看到“100% na”。我想在 % 之后插入一些空格而不是空格。

重写整个应用程序不是重点。它在 Windows 和 Linux 上运行。

目前问题出在这段代码中。我在其他地方查了这个,也是一样的。变量是 QString。

QSqlQuery query;

query.exec("insert into table_name ("+variable_with_columns_names+"values ("+variable_with_data_to_insert+");");

你有什么办法可以规避它吗?

编辑

准备查询解决了这个问题。但它在其他方面有所突破。更新,选择 ... 其中 ...='100% na'(作为变量),生成报告和其他内容。更重要的是,这些数据至少被 5 个模块使用,每个模块使用超过 5 个数据表。所以我会等一段时间,如果有人有其他解决方案的话。

附言。还有一个问题: 为什么“% n”在不应该被解释为“%n”的情况下被解释为“%n”?

有趣的是,如果我将“100% na”更改为“100%% na”,当它应该更改为“100% na”时,我进入了数据库“100%% na”。

最佳答案

使用prepare准备查询。然后使用 bindValue 插入值.在这种情况下应始终使用准备好的语句,因为它们会为您处理特殊字符的转义。

关于c++ - %n 问题 *** 检测到可写段中的 %n *** C++ i Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779278/

相关文章:

c++ - Qt画一个带孔的环/圆

qt - QT 支持 UPNP 吗?

c++ - 有没有办法反转 QWidget::setMask() 函数或达到类似的效果?

c++ - 从没有 Qt、STL 或 Boost 的 C++98 接口(interface)连接 Qt 槽和信号

c++ - 如何在 Qt 中使用 QTabWidget 创建多行选项卡?

c++ - 为什么添加 `const` 会使通用引用成为右值

c++ - C# 到 c++/cli 到 unamanged c++ ref

c++ - 检索要通过网络发送的 ID3D11Texture2D 数据

c++ - 检查 std::chrono 持续时间小于 0 的惯用方法

c++ - 函数调用中临时构造被解释为声明