2
這裏的SQLite3的哈斯克爾綁定與創造功能的能力:http://hackage.haskell.org/packages/archive/sqlite/0.5.1/doc/html/Database-SQLite.htmlsqlite3的哈斯克爾createFunction例如
但我不能讓使用此功能,我寫了這樣的代碼:
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
是的,謝謝,我剛剛搞砸這一切類型類和實例,感謝: )我在問題中發佈了正確的代碼。 – pechenie 2011-03-04 13:21:45