diff options
author | scgilardi <scgilardi@gmail.com> | 2009-01-26 19:42:01 +0000 |
---|---|---|
committer | scgilardi <scgilardi@gmail.com> | 2009-01-26 19:42:01 +0000 |
commit | f3519aac9689f053cbaf0ae4521db2b89920a270 (patch) | |
tree | 1118514b5f1ada2cad3c1916af0e1b06bbff7424 /src | |
parent | ee74b401548008d7910f37c79c68cb2790ef6776 (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.clj | 12 |
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)) |