[Haskell-cafe] toSql and fromSql, for Algebraic Data Type
Daniel Patterson
lists.haskell at dbp.mm.st
Sat Jun 25 02:28:22 CEST 2011
(forgot to CC the list)
On Jun 24, 2011, at 8:27 PM, Daniel Patterson wrote:
> It looks, from looking at the provided instances (not from having done it myself), that you need to define safeConvert functions to and from your value. Here is a partial list of conversions to and from String.
> instance Convertible String SqlValue where
> safeConvert = return . SqlString
> instance Convertible SqlValue String where
> safeConvert (SqlString x) = return x
> safeConvert (SqlByteString x) = return . BUTF8.toString $ x
> safeConvert (SqlInt32 x) = return . show $ x
> safeConvert (SqlInt64 x) = return . show $ x
> safeConvert (SqlWord32 x) = return . show $ x
> safeConvert (SqlWord64 x) = return . show $ x
> safeConvert (SqlInteger x) = return . show $ x
> safeConvert (SqlChar x) = return [x]
> safeConvert (SqlBool x) = return . show $ x
> safeConvert (SqlDouble x) = return . show $ x
> safeConvert (SqlRational x) = return . show $ x
>
> On Jun 24, 2011, at 8:02 PM, Tom Murphy wrote:
>
>> Hi *,
>> The title is self-explanatory. I'd like to store information from
>> an algebraic data type in an SQL database, but the type signature of
>> toSql (toSql
>> :: Data.Convertible.Base.Convertible a SqlValue => a -> SqlValue)
>> doesn't make sense to me.
>> How is this done (how do I make an instance of a typeclass like that?)
>>
>> Thanks for your time,
>> Tom
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110624/823610ea/attachment.htm>
More information about the Haskell-Cafe
mailing list