我們需要在工作場所定期解決的問題是如何基於用戶提供的表/列名稱來構建sql語句。我試圖解決的問題是列名之間的逗號。使用列名稱向量來生成sql語句
一種技術看起來像這樣。
selectSql = "SELECT ";
for (z = 0; z < columns.size(); z++)
{
selectSql += columns[z]._name;
selectSql += ", ";
}
selectSql = selectSql(0, selectSql.len() - 2);
selectSql += "FROM some-table";
另一種方法看起來是這樣的
selectSql = "SELECT ";
for (z = 0; z < columns.size(); z++)
{
selectSql += columns[z]._name;
if (z < columns.size() - 1)
selectSql += ", ";
}
selectSql += "FROM some-table";
我並不是通過這些實現的如醉如癡。
我很感興趣的是通過其他方式來解決這個問題,並着眼於使代碼更易於閱讀/理解/維護。
可以使用哪些替代技術?
我在快速而髒的代碼中使用了類似的方法,除了我使用bool來檢查是否需要打印逗號。 – strager 2008-11-29 01:45:15
我要說的是,你最終會收到尾隨的逗號。然後我看到你在那裏做了什麼。我會說這個代碼有點「棘手」,很難維護。 – 2008-11-29 02:21:58
另外,如果這是一個高性能的循環,您最終會得到多餘的分配給'pad',這將是浪費。 – 2008-11-29 02:22:43