Database Haskell sqlite3代码
我试图弄清楚如何为haskell使用sqlite模块。这是我的基本代码:Database Haskell sqlite3代码,database,haskell,sqlite,Database,Haskell,Sqlite,我试图弄清楚如何为haskell使用sqlite模块。这是我的基本代码: import Database.SQLite firstTry str = do conn <- openConnection $ "/Users/frkkan96/Documents/src/umecore-hs/testdata/ume.umedb" statement <- return $ "select * from segments where label = :n ;"
import Database.SQLite
firstTry str = do
conn <- openConnection $ "/Users/frkkan96/Documents/src/umecore-hs/testdata/ume.umedb"
statement <- return $ "select * from segments where label = :n ;"
b <- execParamStatement conn statement [(":n", Text "First words")]
closeConnection conn
import Database.SQLite
firstTry str=do
conn问题在于execParamStatement::SQLiteResult a=>SQLiteHandle->String->[(String,Value)]->IO(字符串[[Row a]])
的类型。这意味着调用者可以选择任何a
,只要它是SQLiteResult
的实例。但是,由于您实际上并没有对任何内容使用b
,编译器只为其分配一个类型变量a0
您需要通过实际使用execParamStatement
的结果或使用execParamStatement conn statement[(“:n”,Text“First words”)]::IO(字符串[[行值]])
来指定类型(很可能您希望a
) 问题在于execParamStatement::SQLiteResult a=>SQLiteHandle->String->[(String,Value)]->IO(字符串[[Row a]])
的类型。这意味着调用者可以选择任何a
,只要它是SQLiteResult
的实例。但是,由于您实际上并没有对任何内容使用b
,编译器只为其分配一个类型变量a0
您需要通过实际使用execParamStatement
的结果或使用execParamStatement conn statement[(“:n”,Text“First words”)]::IO(字符串[[行值]])
来指定类型(很可能您希望a
) 问题在于execParamStatement::SQLiteResult a=>SQLiteHandle->String->[(String,Value)]->IO(字符串[[Row a]])
的类型。这意味着调用者可以选择任何a
,只要它是SQLiteResult
的实例。但是,由于您实际上并没有对任何内容使用b
,编译器只为其分配一个类型变量a0
您需要通过实际使用execParamStatement
的结果或使用execParamStatement conn statement[(“:n”,Text“First words”)]::IO(字符串[[行值]])
来指定类型(很可能您希望a
) 问题在于execParamStatement::SQLiteResult a=>SQLiteHandle->String->[(String,Value)]->IO(字符串[[Row a]])
的类型。这意味着调用者可以选择任何a
,只要它是SQLiteResult
的实例。但是,由于您实际上并没有对任何内容使用b
,编译器只为其分配一个类型变量a0
您需要通过实际使用execParamStatement
的结果或使用execParamStatement conn statement[(“:n”,Text“First words”)]::IO(字符串[[行值]])
来指定类型(很可能您希望a
) 谢谢!离开一段时间后,再次回到Haskell,我忘记了类型签名的价值,甚至(特别是)在设计用于计算某些东西如何工作的短小代码中。谢谢!离开一段时间后,再次回到Haskell,我忘记了类型签名的价值,甚至(特别是)在设计用于计算某些东西如何工作的短小代码中。谢谢!离开一段时间后,再次回到Haskell,我忘记了类型签名的价值,甚至(特别是)在设计用于计算某些东西如何工作的短小代码中。谢谢!过了一段时间,回到Haskell,我忘记了类型签名的价值,甚至(特别是)在设计用于计算某个东西如何工作的短小代码中。
sqlitetest.hs:6:9:
No instance for (SQLiteResult a0)
arising from a use of `execParamStatement'
In a stmt of a 'do' block:
execParamStatement conn statement [(":n", Text "First words")]
In the expression:
do { conn <- openConnection
$ "/Users/frkkan96/Documents/src/umecore-hs/testdata/ume.umedb";
statement <- return $ "select * from segments where label = :n ;";
execParamStatement conn statement [(":n", Text "First words")];
closeConnection conn }
In an equation for `firstTry':
firstTry str
= do { conn <- openConnection
$ "/Users/frkkan96/Documents/src/umecore-hs/testdata/ume.umedb";
statement <- return $ "select * from segments where label = :n ;";
execParamStatement conn statement [(":n", Text "First words")];
.... }