[plt-scheme] Mr MySQL

From: Pupeno (pupeno at pupeno.com)
Date: Sat Oct 8 15:54:38 EDT 2005

Hello.
I am continue my effort to make a good set of bindings for MySQL. It has grow 
a bit since the last time and I think my focus is better now.
I am posting a snapshot of what I have, it is not much, but I'd like you to 
see how I am going (it is my first real code written on Scheme).
I'd like to have some feedback about my design desitions like:
- Having two modules, libmysqlclient for low level stuff, mysql for higher 
level stuff.
- Encapsulating a lot of what is going on behind the scenes.
- Having a stack of handlers[1] and a current handler to free the user for 
having to pass handlers from function to function. For example, one could do:
(let ((m (mysql-connect "localhost" "user" "pass")))
   (mysql-query m "SELECT ...")
   (mysql-disconnect m))
or with the stack and current handlers:
(mysql-connect "localhost" "user" "pass")
(mysql-query "SELECT ...")
(mysql-disconnect)
Any other feedback, no matter how pedantic it is, is welcome. I am particular 
interested in making it Schemish and functional.
The snapshot can be found on: 
http://pupeno.com/eng/misc/temp/mr-mysql-20051008194353.tar.bz2/file_view
Thank you.
-- 
Pupeno <pupeno at pupeno.com> (http://pupeno.com)

[1] A handler is representation of a conection to the database, whenever you 
want to perform a anything on a given conection, you use a function and a 
handler. Internally, it is a pointer. Internal in MySQL, it is a structure 
and that is all I know.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20051008/4e61358a/attachment.sig>

Posted on the users mailing list.