From 27623f0d72aca9c98ae5ab3b92448f776cb556f0 Mon Sep 17 00:00:00 2001 From: Robert Klotzner Date: Thu, 10 Jan 2013 14:08:04 +0100 Subject: [PATCH] Added constructor to Query to allow dynamically generated args. (It takes a Variant[] array) --- database.d | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/database.d b/database.d index e9a2911..bd8428b 100644 --- a/database.d +++ b/database.d @@ -61,11 +61,13 @@ Ret queryOneColumn(Ret, T...)(Database db, string sql, T t) { struct Query { ResultSet result; - static Query opCall(T...)(Database db, string sql, T t) { - Query q; - q.result = db.query(sql, t); - return q; + this(T...)(Database db, string sql, T t) if(T.length!=1 || !is(T[0]==Variant[])) { + result = db.query(sql, t); } + // Version for dynamic generation of args: (Needs to be a template for coexistence with other constructor. + this(T...)(Database db, string sql, T args) if (T.length==1 && is(T[0] == Variant[])) { + result = db.queryImpl(sql, args); + } int opApply(T)(T dg) if(is(T == delegate)) { import std.traits;