
The problem is, "fromSql x" doesn't know that type it should return. It's sure that it has to be of class "Convertible SqlValue", but nothing more. Could be String, or Int32, or something else. What if you just omit the "show" function? fromSql seems to be able to convert almost anything to String. Iain Barnett wrote:
Hi,
I'm trying to get to grips with HDBC and have the following problem. When I run a query that returns a result set, each row comes back as a [SqlValue]. Naively, I thought the following function would convert a [SqlValue] into a string, but instead I get the error below.
convrow2 :: [SqlValue] -> String convrow2 (x:xs) = foldl (\i j -> i ++ " | " ++ show j ) (show (fromSql x)) xs
Prelude> :l TasksSimple.lhs [1 of 1] Compiling Main ( TasksSimple.lhs, interpreted )
TasksSimple.lhs:126:65: No instance for (convertible-1.0.5:Data.Convertible.Base.Convertible SqlValue a) arising from a use of `fromSql' at TasksSimple.lhs:126:65-73 Possible fix: add an instance declaration for (convertible-1.0.5:Data.Convertible.Base.Convertible SqlValue a) In the first argument of `show', namely `(fromSql x)' In the second argument of `foldl', namely `(show (fromSql x))' In the expression: foldl (\ i j -> i ++ " | " ++ show j) (show (fromSql x)) xs Failed, modules loaded: none.
I tried looking at how to add an instance declaration for convertible, but was stumped.
This code, however, works in GHCi. Would anyone know how to convert from [SqlValue] in a straightforward way without having to specify every field "by hand" ? I don't fancy doing this for each sql statement I need to run.
convrow1 :: [SqlValue] -> String convrow1 [tasksid,title,added] = show ( (fromSql tasksid)::Integer ) ++ " | " ++ fromSql title ++ " | " ++ show ((fromSql added)::LocalTime)
Any help is much appreciated, especially as I haven't looked at any Haskell in a while and wasn't any good with it before!
Regards, Iain
This is my set up: GHC is 6.10.4 HDBC is HDBC-2.1.1, HDBC-2.2.2, HDBC-postgresql-2.1.0.0,HDBC-postgresql-2.2.0.0 Convertible is convertible-1.0.5, convertible-1.0.8 OSX 10.6_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe