[postmodern-devel] Building s-sql on the fly

Phil zaries at global.co.za
Thu Dec 11 15:36:47 UTC 2008


On Thu, 2008-12-11 at 16:05 +0100, Jens Teich wrote:
> Phil schrieb:
> > Hi 
> > 
> > I am looking for an example of how to create a s-sql query on the fly. I
> > am sure I saw something like that along the line on some website but I
> > cant find it again.
> 
> Are you looking for things like that:
> 
> (defun element (&key guid guid-parent type-id type-not-equal)
>    (let ((sql-guid        (if guid
>                             (postmodern:sql (:= 'guid guid))
>                             (postmodern:sql t)))
>          (sql-guid-parent (if guid-parent
>                             (postmodern:sql
>                               (:= 'struct-guid-parent-node guid-parent))
>                             (postmodern:sql t)))
>          (sql-type-id     (if type-id
>                             (postmodern:sql (:= 'type-id type-id))
>                             (postmodern:sql t)))
>          (sql-type-not-equal (if type-not-equal
>                                (postmodern:sql
>                                  (:not (:= 'type-id type-not-equal)))
>                                (postmodern:sql t))))
>         (postmodern:query (:order-by
>                            (:select 'guid 'name 'type-id 'name-css
>                             :from   'projekt-elemente
>                             :where  (:and
>                                      (:raw sql-guid)
>                                      (:raw sql-guid-parent)
>                                      (:raw sql-type-id)
>                                      (:raw sql-type-not-equal)
>                                      (:= 'lang-id *lang*)))
>                            'struct-sort-order))))
> 
> Jens
> 
Thanx Jens that gives me some insight into a couple of things,  but I
dont know the amount of statements I will have in the where that is why
I have to build the query dynamically.

The example Maciej gave completes the puzzle.

Phil





More information about the postmodern-devel mailing list