packages feed

json2-0.2: Examples/ExampleSqlite.hs

module Main where
import Database.HDBC
import Database.HDBC.Sqlite3
import Data.JSON2
import Data.JSON2.FromSQL

dbName = "Examples/test.db"
selectSql = "SELECT * from test"

main = do
    conn <- connectSqlite3 dbName
    stmtSel <- prepare conn selectSql
    execute stmtSel []
    q <- sFetchAllRows stmtSel
    mapM print q
 --   [Just "A",Just "1",Just "Pupkin",Just "1"]
 --   [Just "A",Just "2",Just "Sidorov",Just "2"]
 --   [Just "B",Just "22",Just "Petrov",Just "3"]
 --   [Just "B",Just "22",Just "Ivanov",Just "4"]
 --   [Just "B",Just "22",Just "Golubev",Just "5"]
 --   [Just "B",Just "33",Just "Petrov",Just "6"]
    let json = toJson (q :: [[Maybe String]])
    pprint json
 --   [
 --     ["A", "1", "Pupkin", "1"],
 --     ["A", "2", "Sidorov", "2"],
 --     ["B", "22", "Petrov", "3"],
 --     ["B", "22", "Ivanov", "4"],
 --     ["B", "22", "Golubev", "5"],
 --     ["B", "33", "Petrov", "6"]
 --   ]
    let json' = groupWithNCol 2 json
    pprint json'
 --   {
 --     "A": {
 --       "1": [["Pupkin", "1"]],
 --       "2": [["Sidorov", "2"]]
 --     },
 --     "B": {
 --       "22": [["Petrov", "3"], ["Ivanov", "4"], ["Golubev", "5"]],
 --       "33": [["Petrov", "6"]]
 --     }
 --   }
    disconnect conn