SQLDeps-0.1: Example.hs
import Control.Monad.RWS
import Database.HDBC
import Database.HDBC.Sqlite3
import Database.SQLDeps
exampleSelect = Select [("users", "name")] ["users"] [SmallerThan ("users", "age") $ IntVal 5]
exampleInsert a = Insert "users" [ (("users", "name"), StrVal "Alex")
, (("users", "age"), IntVal a)
]
exampleUpdate = Update "users" [ (("users", "age"), IntVal 2) ] [SmallerThan ("users", "age") $ IntVal 10]
getYoungUsers =
do young <- query exampleSelect "getYoungUsers" getYoungUsers
liftIO $ putStrLn "Looking for all users age < 5"
liftIO $ putStrLn $ show young
insertNewUser age =
do liftIO $ putStrLn $ "Adding Alex with age " ++ (show age)
change $ exampleInsert age
main =
do conn <- connectSqlite3 ":memory:"
runRaw conn $ "CREATE TABLE users (name TEXT, age INT)"
runEngine conn $ do getYoungUsers
insertNewUser 4
insertNewUser 10
insertNewUser 1
change $ exampleUpdate
commit conn
disconnect conn