这是具有创建功能的 SQLite3 Haskell 绑定:http: //hackage.haskell.org/packages/archive/sqlite/0.5.1/doc/html/Database-SQLite.html
但是我不能使用这个功能,我写了这样的代码:
increment a = a + 1
checkout = do
handle <- openConnection "test.db"
ok <- createFunction handle "woot" (IsFunctionHandler increment)
return $ execStatement handle "SELECT woot(5)";
但它没有编译“不在范围内:数据构造函数‘IsFunctionHandler’”错误
正确的代码是:
module Test where
import Database.SQLite
import Int
increment :: Int64 -> Int64
increment a = a + 1
checkout :: IO (Either String [[Row Value]])
checkout = do
handle <- openConnection "test.db"
ok <- createFunction handle "woot" increment
execStatement handle "SELECT woot(5), woot(7), woot(128)"
感谢 HaskellElephant