X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;ds=sidebyside;f=sql-classes.lisp;h=37ed4d1e1313e132540f5d868c0cb9a799a7972f;hb=4101367501167bdbdc17f07286f8e39d41e4481a;hp=4665dedde1ef06319a78b008d0bc61b3eb2e3ded;hpb=bca2b13c527c8f6d06594c3e8acad4554f3ff122;p=umlisp.git diff --git a/sql-classes.lisp b/sql-classes.lisp index 4665ded..37ed4d1 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.45 2003/05/03 20:47:28 kevin Exp $ +;;;; $Id: sql-classes.lisp,v 1.48 2003/05/03 21:27:59 kevin Exp $ ;;;; ;;;; This file, part of UMLisp, is ;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D. @@ -60,19 +60,19 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (let* ((%%fields (format nil "select ~A~{~:@(~A~)~^,~} from ~:@(~A~)" (if distinct "distinct " "") fields table)) (%%order (if order (format nil " order by ~{~:@(~A~) ~(~A~)~^,~}" order) "")) - (%%lrl (format nil " and ~:@(~A~) <= ~~D" lrlname)) - (%%where (format nil " where ~:@(~A~)" where-name))) + (%%lrl (format nil " and ~:@(~A~)<=" lrlname)) + (%%where (format nil " where ~:@(~A~)~A" where-name + (if like " like " "=")))) `(concatenate 'string ,%%fields ,@(when %%where (list %%where)) (if (quote ,where-name) - (format nil (if (stringp ,where-value) - ,(if like " like '%~A%'" "='~A'") - "=~A") - ,where-value) + (if (numberp ,where-value) + (write-to-string ,where-value) + (format nil ,(if like "'%~A%'" "'~A'") ,where-value)) "") - (if ,srl (format nil ,%%lrl ,srl) "") + (if ,srl (concatenate 'string ,%%lrl (write-to-string ,srl)) "") ,@(when %%order (list %%order)) ,@(when single (list " limit 1")))))