;;;; Author: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: sql-classes.lisp,v 1.34 2003/05/03 20:12:08 kevin Exp $
+;;;; $Id: sql-classes.lisp,v 1.35 2003/05/03 20:18:40 kevin Exp $
;;;;
;;;; This file, part of UMLisp, is
;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
&key (lrlname "KCUILRL") distinct single
order like)
&body body)
- (let ((query (gensym)))
+ (if single
`(unless (and ,where-name (not ,where-value))
- (let ((,query (umlisp-query ,table ,fields ,srl ,where-name ,where-value
- :lrlname ,lrlname :single ,single :distinct ,distinct
- :order ,order :like ,like)))
- (if ,single
- (let ((tuple (car ,query)))
- (when tuple
- (destructuring-bind ,fields tuple
- ,@body)))
- (loop
- for tuple in ,query collect
- (destructuring-bind ,fields tuple
- ,@body)))))))
+ (let ((tuple (car (umlisp-query ,table ,fields ,srl ,where-name ,where-value
+ :lrlname ,lrlname :single ,single
+ :distinct ,distinct :order ,order :like ,like))))
+ (when tuple
+ (destructuring-bind ,fields tuple
+ ,@body))))
+ `(unless (and ,where-name (not ,where-value))
+ (let ((tuple (car )))
+ (loop for tuple in
+ (umlisp-query ,table ,fields ,srl ,where-name ,where-value
+ :lrlname ,lrlname :single ,single
+ :distinct ,distinct :order ,order :like ,like)
+ collect
+ (destructuring-bind ,fields tuple
+ ,@body))))))
(defmacro umlisp-query (table fields srl where-name where-value
&key (lrlname "KCUILRL") single distinct order like)