source: project/release/4/vandusen/trunk/vandusen-db.scm @ 21508

Last change on this file since 21508 was 21508, checked in by Moritz Heidkamp, 10 years ago

vandusen: implement silly vandusen-db module based on sql-de-lite

File size: 702 bytes
Line 
1(module vandusen-db
2
3(use-database database exec sql)
4
5(import chicken scheme)
6(use (prefix sql-de-lite sql:) srfi-18 srfi-13)
7(reexport (except sql-de-lite exec sql))
8
9(define database (make-parameter #f))
10
11(define (use-database file)
12  (database (sql:open-database file)))
13
14(define (sql . stmt)
15  (sql:sql (database) (string-concatenate stmt)))
16
17(define exec
18  (let ((mx (make-mutex)))
19    (lambda (stmt . vars)
20      (dynamic-wind
21          (lambda ()
22            (mutex-lock! mx))
23          (lambda ()
24            (handle-exceptions exn
25              (error 'exec (sql:error-message (database)))
26              (apply sql:exec stmt vars)))
27          (lambda ()
28            (mutex-unlock! mx))))))
29
30)
Note: See TracBrowser for help on using the repository browser.