1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
-----------------------------------------------------------
-- |
-- Module : Database.HaskellDB.HDBC.SQLite3
-- Copyright : HWT Group 2003,
-- Bjorn Bringert 2005-2006
-- License : BSD-style
--
-- Maintainer : haskelldb-users@lists.sourceforge.net
-- Stability : experimental
-- Portability : non-portable
--
-- Interface to the HDBC sqlite3 back-end.
--
-----------------------------------------------------------
module Database.HaskellDB.HDBC.SQLite3 (
SQLiteOptions(..), sqliteConnect,
DriverInterface(..), driver
) where
import Database.HaskellDB.Database
import Database.HaskellDB.HDBC
import Database.HaskellDB.DriverAPI
import Database.HaskellDB.Sql.SQLite as SQLite
import Database.HDBC.Sqlite3 (connectSqlite3)
import System.IO
data SQLiteOptions = SQLiteOptions {
filepath :: FilePath
}
sqliteConnect :: MonadIO m => FilePath -> (Database -> m a) -> m a
sqliteConnect path = hdbcConnect SQLite.generator (connectSqlite3 path)
options :: [(String, String)]
options =
("filepath", "File path") :
[]
sqliteConnectOpts :: MonadIO m => [(String,String)] -> (Database -> m a) -> m a
sqliteConnectOpts opts f =
do
[a] <- getAnnotatedOptions options opts
sqliteConnect a f
-- | This driver requires the following options:
-- "filepath"
driver :: DriverInterface
driver = defaultdriver {connect = sqliteConnectOpts, requiredOptions = options}
|