aboutsummaryrefslogtreecommitdiff
path: root/odb/mssql/query-dynamic.txx
blob: 8683c0f72604a06ee79c69ebc3902fccd71057f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// file      : odb/mssql/query-dynamic.txx
// license   : ODB NCUEL; see accompanying LICENSE file

namespace odb
{
  namespace mssql
  {
    template <typename T, database_type_id ID>
    details::shared_ptr<query_param>
    query_param_factory_impl (const void* val,
                              const query_column_base& qc,
                              bool by_ref)
    {
      const T& v (*static_cast<const T*> (val));

      unsigned short p (qc.prec ());
      unsigned short s (qc.scale ());

      return details::shared_ptr<query_param> (
        by_ref
        ? new (details::shared) query_param_impl<T, ID> (ref_bind<T> (v, p, s))
        : new (details::shared) query_param_impl<T, ID> (val_bind<T> (v, p, s)));
    }
  }
}