tanyue.esec:试了一下,还是一样的效果,拿不到那个最终代入占位符参数的那个SQL
难道是因为用的是ODBC的原因?
(2024-05-07 09:40) 
看来这个函数和它的说明不匹配,你可以尝试牺牲一点性能来完成这个功能
QString getLastExecutedQuery(const QSqlQuery& query)
{
QString sql = query.lastQuery();
const int nbBindValues = query.boundValues().size();
for(int i = 0, j = 0; j < nbBindValues; ++j)
{
i = sql.indexOf(QLatin1Char('?'), i);
if (i <= 0)
{
break;
}
const QVariant &var = query.boundValue(j);
QSqlField field(QLatin1String(""), var.type());
if (var.isNull())
{
field.clear();
}
else
{
field.setValue(var);
}
QString formatV = query.driver()->formatValue(field);
sql.replace(i, 1, formatV);
i += formatV.length();
}
return sql;
}