This commit is contained in:
@@ -35,6 +35,7 @@ namespace AyaNova.PickList
|
||||
//lists to collect the clauses so to avoid comma fuckery
|
||||
List<string> lSelect = new List<string>();
|
||||
List<string> lWhere = new List<string>();
|
||||
List<string> lOrderBy = new List<string>();
|
||||
|
||||
|
||||
//Add rowid column as it's always required
|
||||
@@ -51,6 +52,7 @@ namespace AyaNova.PickList
|
||||
//it's ok if there is no active column, it could happen so just roll with it
|
||||
if (activeColumn != null)
|
||||
{
|
||||
lSelect.Add(activeColumn.SqlValueColumnName);
|
||||
lWhere.Add(activeColumn.SqlValueColumnName + " = true");
|
||||
}
|
||||
}
|
||||
@@ -70,25 +72,60 @@ namespace AyaNova.PickList
|
||||
|
||||
var valueColumnName = o.GetSqlValueColumnName();
|
||||
lSelect.Add(valueColumnName);
|
||||
lOrderBy.Add(valueColumnName);
|
||||
|
||||
if (HasAutoCompleteQuery)
|
||||
{
|
||||
string sWhere = $"{valueColumnName} LIKE '%{autoCompleteQuery}%'";
|
||||
string sWhere = $"({valueColumnName} LIKE '%{autoCompleteQuery}%')";
|
||||
lWhere.Add(sWhere);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
//Now build up the return query
|
||||
//select
|
||||
//from
|
||||
//where
|
||||
//orderby
|
||||
//limit, actual sql: "LIMIT {MAXIMUM_RESULT_COUNT}"
|
||||
//SELECT
|
||||
sb.Append("select ");
|
||||
foreach (string s in lSelect)
|
||||
{
|
||||
sb.Append(s);
|
||||
sb.Append(",");
|
||||
}
|
||||
//clear trailing comma
|
||||
sb.Length--;
|
||||
|
||||
return sbSelect.ToString() + pickList.SQLFrom + sbWhere.ToString();
|
||||
//FROM
|
||||
sb.Append(" ");
|
||||
sb.Append(pickList.SQLFrom);
|
||||
|
||||
|
||||
//WHERE
|
||||
sb.Append(" ");
|
||||
sb.Append("where ");
|
||||
foreach (string s in lWhere)
|
||||
{
|
||||
sb.Append(s);
|
||||
sb.Append(" or ");
|
||||
}
|
||||
//clear trailing or
|
||||
sb.Length -= 4;
|
||||
|
||||
//ORDER BY
|
||||
sb.Append("ORDER BY ");
|
||||
foreach (string s in lOrderBy)
|
||||
{
|
||||
sb.Append(s);
|
||||
sb.Append(",");
|
||||
}
|
||||
//clear trailing comma
|
||||
sb.Length--;
|
||||
|
||||
//LIMIT
|
||||
sb.Append(" ");
|
||||
sb.Append($"LIMIT {MAXIMUM_RESULT_COUNT}");
|
||||
|
||||
return sb.ToString();
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user