// file : odb/sqlite/query.txx // copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file namespace odb { namespace sqlite { // query // template query:: query (const query_column& c) : parameters_ (new (details::shared) query_params) { // Cannot use IS TRUE here since database type can be a non- // integral type. // append (c.table (), c.column ()); append ("="); append (val_bind (true), c.conversion ()); } // query_column // template query query_column:: in (const T& v1, const T& v2) const { query q (table_, column_); q += "IN ("; q.append (val_bind (v1), conversion_); q += ","; q.append (val_bind (v2), conversion_); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3) const { query q (table_, column_); q += "IN ("; q.append (val_bind (v1), conversion_); q += ","; q.append (val_bind (v2), conversion_); q += ","; q.append (val_bind (v3), conversion_); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3, const T& v4) const { query q (table_, column_); q += "IN ("; q.append (val_bind (v1), conversion_); q += ","; q.append (val_bind (v2), conversion_); q += ","; q.append (val_bind (v3), conversion_); q += ","; q.append (val_bind (v4), conversion_); q += ")"; return q; } template query query_column:: in (const T& v1, const T& v2, const T& v3, const T& v4, const T& v5) const { query q (table_, column_); q += "IN ("; q.append (val_bind (v1), conversion_); q += ","; q.append (val_bind (v2), conversion_); q += ","; q.append (val_bind (v3), conversion_); q += ","; q.append (val_bind (v4), conversion_); q += ","; q.append (val_bind (v5), conversion_); q += ")"; return q; } template template query query_column:: in_range (I begin, I end) const { query q (table_, column_); q += "IN ("; for (I i (begin); i != end; ++i) { if (i != begin) q += ","; q.append (val_bind (*i), conversion_); } q += ")"; return q; } } }