* sql/fdml.lisp: Rework do-query to use supplied database
parameter when passed a sql-object-query
(thanks to JTK <jetmonk@gmail.com>)
+04 Sep 2009 Kevin Rosenberg <kevin@rosenberg.net>
+ * sql/fdml.lisp: Rework do-query to use supplied database
+ parameter when passed a sql-object-query
+ (thanks to JTK <jetmonk@gmail.com>)
+
31 Aug 2009 Kevin Rosenberg <kevin@rosenberg.net>
* sql/db-interface.lisp: Fix spelling error (thanks to
David Thompson)
31 Aug 2009 Kevin Rosenberg <kevin@rosenberg.net>
* sql/db-interface.lisp: Fix spelling error (thanks to
David Thompson)
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;;
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
;;;; *************************************************************************
;;;;
;;;; The CLSQL Functional Data Manipulation Language (FDML).
;;;;
;;;; This file is part of CLSQL.
;;;; The CLSQL Functional Data Manipulation Language (FDML).
;;;;
;;;; This file is part of CLSQL.
(columns (gensym "COLUMNS-"))
(row (gensym "ROW-"))
(db (gensym "DB-")))
(columns (gensym "COLUMNS-"))
(row (gensym "ROW-"))
(db (gensym "DB-")))
- `(let ((,qe ,query-expression))
+ `(let ((,qe ,query-expression)
+ (,db ,database))
(typecase ,qe
(sql-object-query
(typecase ,qe
(sql-object-query
- (dolist (,row (query ,qe))
+ (dolist (,row (query ,qe :database ,db))
(destructuring-bind ,args
,row
,@body)))
(t
;; Functional query
(destructuring-bind ,args
,row
,@body)))
(t
;; Functional query
- (let ((,db ,database))
- (multiple-value-bind (,result-set ,columns)
- (database-query-result-set ,qe ,db
- :full-set nil
+ (multiple-value-bind (,result-set ,columns)
+ (database-query-result-set ,qe ,db
+ :full-set nil
:result-types ,result-types)
:result-types ,result-types)
- (when ,result-set
- (unwind-protect
- (do ((,row (make-list ,columns)))
- ((not (database-store-next-row ,result-set ,db ,row))
- nil)
- (destructuring-bind ,args ,row
- ,@body))
- (database-dump-result-set ,result-set ,db))))))))))
+ (when ,result-set
+ (unwind-protect
+ (do ((,row (make-list ,columns)))
+ ((not (database-store-next-row ,result-set ,db ,row))
+ nil)
+ (destructuring-bind ,args ,row
+ ,@body))
+ (database-dump-result-set ,result-set ,db)))))))))
(defun map-query (output-type-spec function query-expression
&key (database *default-database*)
(defun map-query (output-type-spec function query-expression
&key (database *default-database*)