import Database.HaskellDB import Dp037.Test_tb1 import TestConnect printTable db = do t <- query db (table test_tb1) mapM_ (putStrLn . showRow) t showRow r = lpad 10 (show (r!c11)) ++ lpad 10 (showNullable (r!c12)) showNullable :: Show a => Maybe a -> String showNullable = maybe "NULL" show lpad :: Int -> String -> String lpad x s = replicate (x - length s) ' ' ++ s testInsert db = do insert db test_tb1 (c11 << constant 157 # c12 << constant (Just 56)) insert db test_tb1 (c11 << constant (-567) # c12 << constant Nothing) testUpdate db = do update db test_tb1 (\r -> r!c11 .==. constant 157) (setC12 (Just 18)) where setC12 x r = c12 << constant x testDelete db = do delete db test_tb1 (\r -> r!c11 .==. constant 157 .||. isNull (r!c12)) test db = do putStrLn "Before insert:" printTable db testInsert db putStrLn "After insert:" printTable db testUpdate db putStrLn "After update:" printTable db testDelete db putStrLn "After delete:" printTable db main = argConnect test