[postmodern-devel] Calling a SQL func as a DAO field value

Marijn Haverbeke marijnh at gmail.com
Tue Dec 25 20:52:53 UTC 2012


Ah, no, you can't do that. The stuff you put into slots are values,
not sql expressions. You could call get-universal-time and somehow
convert that to the same time system that now() is supposed to return,
but you can't put a call in a slot.

Best,
Marijn

On Tue, Dec 25, 2012 at 9:47 PM, Julien Danjou <julien at danjou.info> wrote:
> On Tue, Dec 25 2012, Marijn Haverbeke wrote:
>
>> If I do
>>
>> cl-user> (s-sql:sql (:now))
>>
>> It produces "now()" for me.
>
> Sure, for me too. So let me give you a bit more context.
>
> If you've a class like:
>
> (defclass user ()
>  ((mytimestamp :col-type timestamp :accessor mytimestamp))
>  (:metaclass dao-class))
>
> And try to do:
> (setf (mytimestamp user) '(:now))
> (update-dao user)
>
> This raises things like:
>       Value (:NOW) can not be converted to an SQL literal.
>
> at run-time.
>
> Maybe `setf' is not the right way to modify this field here?
>
> --
> Julien Danjou
> # Free Software hacker & freelance
> # http://julien.danjou.info




More information about the postmodern-devel mailing list