检测到可写段中%n *%n的问题* C ++ i Qt
我有处理大数据的程序,无法修改。在一个文件中,我们遇到“100%na”和应用程序停止。
当我使用debuger检查时,它会在检测到的可写段中返回 *%n 。
我无法更改可见数据,用户必须看到“100%na”。我想在%之后插入除空格之外的一些空格。
重写整个应用程序不是重点。它运行在Windows和Linuks上。
目前问题出在此代码中。我在其他地方检查了这个,它是一样的。变量是QStrings。
QSqlQuery query;
query.exec("insert into table_name ("+variable_with_columns_names+" values ("+variable_with_data_to_insert+");");
你有什么想法可以逃避吗?
修改
准备查询解决了这个问题。但它在其他方面有所突破。更新,选择......其中... ='100%na'(作为变量),生成报告和其他内容。更多的是,这些数据至少由5个模块使用,每个模块使用5个以上的数据表。所以我会等一段时间,如果有人有其他解决方案。
PS。还有一个问题: 为什么“%n”被解释为“%n”,何时不应该?
有趣的是,如果我将“100%na”更改为“100 %% na”,我应该将数据库“100 %% na”更改为“100%na”。
答案 0 :(得分:1)
答案 1 :(得分:0)
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (?, ?, ?)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Bart");
query.addBindValue("Simpson");
query.exec();
这些都有帮助吗?