[Haskell-beginners] Takusen and inserting type Maybe with sqlite3
Neil Jensen
neilcjensen at gmail.com
Fri May 13 23:35:28 CEST 2011
Hello, I'm stumped on using Takusen to insert values of type Maybe into a
sqlite database when the underlying database has a field type of REAL.
When I bind a Maybe to an underlying sqlite field of type DATETIME or
INTEGER, the value is stored correctly. However, when I bind a Maybe value
to a database field of type REAL, the value is inserted as "Just ..." or
"Nothing".
I thought bindP would coerce the Maybe type either into the value or a
database null. What am I missing?
Here is an example of an inserted record in the database:
sqlite> select * from summary;
20110331|100002|Just 0.37427717861180376|Just 2.198753718609092|Just
9.402720712996771|Just 17.50143032492688|Just
8.250653601136904|Nothing|Nothing|Just 6.190434991035554
Here is the function:
storeSummary date account returns = do
dbh <- openDb
withSession dbh (do
execDML(cmdbind "REPLACE INTO summary
(date,account_id,one_mo,three_mo,one_yr,two_yr,three_yr,four_yr,five_yr,incept)
\
\VALUES
(?,?,?,?,?,?,?,?,?,?)" [bindP (Just date), bindP (Just account),
bindP (returns !! 0),bindP (returns !! 1),bindP (returns !! 2),bindP
(returns !! 3),
bindP (returns !! 4),bindP (returns !! 5),bindP (returns !! 6),bindP
(returns !! 7) ])
)
And the database:
sqlite>.schema summary
CREATE TABLE "SUMMARY" ("DATE" DATETIME NOT NULL ,"ACCOUNT_ID" INTEGER NOT
NULL ,"ONE_MO" REAL,"THREE_MO" REAL,"ONE_YR" REAL,"TWO_YR" REAL,"THREE_YR"
REAL,"FOUR_YR" REAL,"FIVE_YR" REAL,"INCEPT" REAL, PRIMARY KEY
("DATE","ACCOUNT_ID") )
Thanks in advance,
Neil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20110513/f437e8cd/attachment.htm>
More information about the Beginners
mailing list