1
擺脫字符串連接的我只是寫了下面的代碼:如何獲得SQL查詢
QSqlQuery query(_db);
QString sql =
"SELECT company_name, server_name, product_name, product_version, license_end, last_update, comment"
" FROM foo WHERE";
if (!include_unlimited)
{
sql += " license_end > NOW() AND license_end != '9999-01-01'";
}
else if (!include_trial)
{
sql += " license_end = '9999-01-01'";
}
else
{
sql += " license_end > NOW()";
}
if (product_name != "*")
{
sql += " AND product_name = :product_name";
}
sql += " ORDER BY license_end";
query.prepare(
sql
);
if (sql.contains(":product_name"))
{
query.bindValue(":product_name", product_name);
}
query.exec();
while (query.next())
{
LicenseInfo license;
license.company_name = query.value(0).toString();
license.server_name = query.value(1).toString();
license.product_name = query.value(2).toString();
license.product_version = query.value(3).toInt();
license.license_end = query.value(4).toString();
license.last_update = query.value(5).toString();
license.comment = query.value(6).toString();
licenses.append(license);
}
如何擺脫這個字符串連接的SQL查詢?
到底是什麼問題 – sagi
@sagi我認爲人工字符串連接長相醜陋,我不知道什麼是重新寫這個的最佳方式代碼 – FrozenHeart
我能想到的唯一方法(因爲查詢取決於條件)而不是串聯它們,只需使用sql = WHOLE QUERY。也許它會更具可讀性 – sagi