From: Kevin M. Rosenberg Date: Sat, 3 May 2003 19:52:04 +0000 (+0000) Subject: r4752: Auto commit for Debian build X-Git-Tag: v2006ac.2~246 X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=commitdiff_plain;h=296cdcba84896b3530f6ef4761413abadf38b92a r4752: Auto commit for Debian build --- diff --git a/sql-classes.lisp b/sql-classes.lisp index a160c68..54be40c 100644 --- a/sql-classes.lisp +++ b/sql-classes.lisp @@ -7,7 +7,7 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: sql-classes.lisp,v 1.25 2003/05/03 19:35:31 kevin Exp $ +;;;; $Id: sql-classes.lisp,v 1.26 2003/05/03 19:52:04 kevin Exp $ ;;;; ;;;; This file, part of UMLisp, is ;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D. @@ -56,6 +56,27 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" :lrlname lrlname :single single :distinct distinct :order order :like like)))) +(defmacro query-string-macro (table fields &optional srl where-name where-value + &key (lrlname "KCUILRL") single distinct order like) + (let* ((%%fields (format nil "select ~A~{~:@(~A~)~^,~}" + (if distinct "distinct " "") (quote fields))) + (%%order (if order (format nil " order by ~{~:@(~A~) ~(~A~)~^,~}" order) ""))) + (concatenate + 'string + (format nil "select ~A from ~:@(~A~)" ,%%fields ,table) + (if ,where-name + (format nil + (if (stringp ,where-value) + (if like + " where ~A like '%~A%'" + " where ~A='~A'") + " where ~A=~A") + ,where-name ,where-value) + "") + (if ,srl (format nil " and ~:@(~A~) <= ~D" ,lrlname ,srl) "") + ,%%order + (if ,single " limit 1" ""))) + (defun query-string (table fields &optional srl where-name where-value &key (lrlname "KCUILRL") single distinct order like) (concatenate