On Mon, Mar 19, 2012 at 1:13 AM, Peter Bex
<address@hidden> wrote:
On Sun, Mar 18, 2012 at 11:42:44PM -0700, Matt Welland wrote:
> How do I do the equivalent of pg:query-for-each with the new api? It must
> be simple but I am confused. Any kind soul willing to point me in the right
> direction?
I'm not 100% sure what the old procedure did again, but this is probably
what you want:
(row-for-each*
(lambda (a b c)
(printf "Got a = ~A, b = ~A, c = ~A\n" a b c))
(query conn "SELECT a, b, c FROM foo"))
If you prefer to get the arguments in a list, use the version
without a star:
(row-for-each
(lambda (tuple)
(printf "Got tuple = ~A\n" tuple))
(query conn "SELECT a, b, c FROM foo"))
Yup, I think that is what I want. Once I saw your example it became apparent that (query ...) is similar to "prepare" in the perl dbi api, however I think I was confused since the paragraph describing query also mentions prepare. As far as I can tell there is actually no "prepare" statement.
If the docs are unclear, I'd appreciate it if you can help me to
improve them.
Perhaps a sentence clarifying what "query" does would help. An example where the query is done prior to the row-for-each would probably have triggered understanding for me.
(let ((sth (query conn "SELECT a,b,c FROM foo")))
(row-for-each
(lambda (tuple)
(print tuple))
sth))
On the other hand just removing or explaining the reference to "prepare" in the "query" description is probably enough.
Thanks for the reply and for maintaining the postgresql egg!
Cheers,
Peter
--
http://sjamaan.ath.cx
--
"The process of preparing programs for a digital computer
is especially attractive, not only because it can be economically
and scientifically rewarding, but also because it can be an aesthetic
experience much like composing poetry or music."
-- Donald Knuth
_______________________________________________
Chicken-users mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/chicken-users