aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorscgilardi <scgilardi@gmail.com>2009-01-26 19:42:01 +0000
committerscgilardi <scgilardi@gmail.com>2009-01-26 19:42:01 +0000
commitf3519aac9689f053cbaf0ae4521db2b89920a270 (patch)
tree1118514b5f1ada2cad3c1916af0e1b06bbff7424 /src
parentee74b401548008d7910f37c79c68cb2790ef6776 (diff)
sql.internal: with-query-results clearer error message when code needs updating from query as sql string to query as vector containing sql string and params
Diffstat (limited to 'src')
-rw-r--r--src/clojure/contrib/sql/internal.clj12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/clojure/contrib/sql/internal.clj b/src/clojure/contrib/sql/internal.clj
index 2db3d41e..730bc84b 100644
--- a/src/clojure/contrib/sql/internal.clj
+++ b/src/clojure/contrib/sql/internal.clj
@@ -11,7 +11,8 @@
;; scgilardi (gmail)
;; Created 3 October 2008
-(ns clojure.contrib.sql.internal)
+(ns clojure.contrib.sql.internal
+ (:use [clojure.contrib.except :only (throw-arg)]))
(def *db* {:connection nil :level 0})
@@ -119,7 +120,14 @@
"Executes a query, then evaluates func passing in a seq of the results as
an argument. The first argument is a vector containing the (optionally
parameterized) sql query string followed by values for any parameters."
- [[sql & params] func]
+ [[sql & params :as sql-params] func]
+ (when-not (vector? sql-params)
+ (throw-arg "\"%s\" expected %s %s, found %s %s"
+ "sql-params"
+ "vector"
+ "[sql param*]"
+ (.getName (class sql-params))
+ (pr-str sql-params)))
(with-open [stmt (.prepareStatement (connection*) sql)]
(doseq [[index value] (map vector (iterate inc 1) params)]
(.setObject stmt index value))