r4761: Auto commit for Debian build
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 3 May 2003 20:18:40 +0000 (20:18 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sat, 3 May 2003 20:18:40 +0000 (20:18 +0000)
sql-classes.lisp

index 331bb5336c838e50e13e5b8e8f83ca28136e92ac..9f8c6b1bed06c36eae354ca2ea670219115cd5bb 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; 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)