Last change
on this file since 24096 was
24096,
checked in by Moritz Heidkamp, 10 years ago
|
vandusen: also export `query' from vandusen-db
|
File size:
867 bytes
|
Line | |
---|
1 | (module vandusen-db |
---|
2 | |
---|
3 | (use-database database exec query sql) |
---|
4 | |
---|
5 | (import chicken scheme) |
---|
6 | (use (prefix sql-de-lite sql:) srfi-18 srfi-13) |
---|
7 | (reexport (except sql-de-lite exec query 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 with-db |
---|
18 | (let ((mx (make-mutex))) |
---|
19 | (lambda (thunk) |
---|
20 | (dynamic-wind |
---|
21 | (lambda () |
---|
22 | (mutex-lock! mx)) |
---|
23 | (lambda () |
---|
24 | (handle-exceptions exn |
---|
25 | (error 'exec (sql:error-message (database))) |
---|
26 | (thunk))) |
---|
27 | (lambda () |
---|
28 | (mutex-unlock! mx)))))) |
---|
29 | |
---|
30 | (define (exec stmt . vars) |
---|
31 | (with-db (lambda () (apply sql:exec stmt vars)))) |
---|
32 | |
---|
33 | |
---|
34 | (define (query proc stmt . vars) |
---|
35 | (with-db (lambda () (apply sql:query proc stmt vars)))) |
---|
36 | |
---|
37 | |
---|
38 | |
---|
39 | ) |
---|
Note: See
TracBrowser
for help on using the repository browser.