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;
}