(module vandusen-db (use-database database exec sql) (import chicken scheme) (use (prefix sql-de-lite sql:) srfi-18 srfi-13) (reexport (except sql-de-lite exec sql)) (define database (make-parameter #f)) (define (use-database file) (database (sql:open-database file))) (define (sql . stmt) (sql:sql (database) (string-concatenate stmt))) (define exec (let ((mx (make-mutex))) (lambda (stmt . vars) (dynamic-wind (lambda () (mutex-lock! mx)) (lambda () (handle-exceptions exn (error 'exec (sql:error-message (database))) (apply sql:exec stmt vars))) (lambda () (mutex-unlock! mx)))))) )