我承认,鉴于我有限的Haskell知识,我并不太了解Conduits。所以,如果有人可以指导我如何完成这项任务,那就表示赞赏:我想获取rawQuery操作的输出并将其存储在一个变量中,然后我可以在我的Hamlet文件中再次使用它。例如:
let sql = "SELECT sum(value) as total, category FROM person GROUP BY category ORDER BY total desc;"
--- ?? how to store this runDB output in a variable?
runDB $ rawQuery sql [] $$ CL.map (convertFromPersistent)
where
convertFromPersistent [] = Nothing
convertFromPersistent [PersistInt64 sum,PersistInt64 category] = Just (sum,category)
convertFromPersistent _ = Nothing
当我这样做时
runDB $ rawQuery sql [] $$ CL.mapM_ (liftIO. print. convertFromPersistent)
我在日志文件中看到输出。但是,我想将输出传递给元组数组,以便我可以在我的Hamlet文件中使用它。感谢您的帮助!
谢谢,
答案 0 :(得分:5)
通过反复试验,我发现这有效:
res <- runDB $ rawQuery sql [] $$ CL.map (convertFromPersistent) =$ CL.consume