;; ;; Author: David Krentzlin ;; ;; Created: Fr Nov 12 09:12:01 2010 (CET) ;; Last-Updated: Do Mär 29 12:11:04 2012 (CEST) ;; By: (module nomads-sql-de-lite () (import chicken scheme) (require-library sql-de-lite nomads) (import nomads) (import sql-de-lite) (import (only extras sprintf)) (db-with-connection call-with-database) (db-with-transaction with-transaction) (db-schema-information-exists? (lambda (connection table) (string? (first-column (query fetch (sql connection "SELECT name FROM sqlite_master WHERE name=?") table))))) (db-initialize-schema-information (lambda (connection table) (exec (sql connection (sprintf "CREATE TABLE IF NOT EXISTS \"~A\" (version string NOT NULL)" table))))) (db-version-list (lambda (db table) (map car (query fetch-all (sql db (sprintf "SELECT version FROM \"~A\"" table)))))) (db-add-version (lambda (db version table) (exec (sql db (sprintf "INSERT INTO \"~A\" (version) VALUES(?)" table)) version))) (db-remove-version (lambda (db version table) (exec (sql db (sprintf "DELETE FROM \"~A\" WHERE version=?" table)) version))) (db-execute-sql (lambda (connection expr) (exec (sql connection expr)))) (db-error? sqlite-exception?) (db-message-from-error sqlite-exception-message) )