[Haskell-cafe] Re: HDBC or HSQL
Thomas Hartman
tphyahoo at gmail.com
Sun Oct 19 09:35:21 EDT 2008
For the reasons described in my previous message, I plan on looking
into using takusen with HAppS.
2007/8/4 Alex Jacobson <alex at alexjacobson.com>:
> Have you looked at the HAppS.DBMS.IxSet? It gives you a type safe way to
> query indexed collections.
>
> -Alex-
>
> Isto Aho wrote:
>>
>> Hi,
>>
>> I'd like to store small matrices into a db. Number of rows and columns may
>> vary in a way not
>> known in advance. One might use a relation (matrixId, col, row, value) or
>> something like that
>> but if it is possible to put a matrix in one command into db, some queries
>> will be easier.
>> E.g., one relation can store several matrices and it would be easy to
>> query, how many
>> matrices are stored currently. With that above four tuple you can find out
>> the number of unique
>> matrixId's, too, but it is not as easy as with matrices.
>>
>> Anyhow, now I'm not sure if I should stick with HSQL any more... Earlier
>> comments on this
>> thread made me think that maybe it would be a better idea to try to learn
>> enough HDBC.
>>
>> This would be used in a server application. Is HAppS applicable here?
>>
>> e.g. after some tweaking the following works with HSQL:
>>
>> addRows = do
>> dbh <- connect server database user_id passwd
>> intoDB dbh ([555,111, 50, 1000]::[Int])
>> ([21.0,22.0,23.0,24.0]::[Double])
>> intoDB dbh ([556,111, 50, 1000]::[Int])
>> ([21.0,22.0,23.0,24.0]::[Double])
>> intoDB dbh ([]::[Int]) ([]::[Double])
>> where
>> intoDB dbh i_lst d_lst =
>> catchSql (do
>> let cmd = "INSERT INTO trial (intList, dList)
>> VALUES (" ++
>> toSqlValue i_lst ++ "," ++ toSqlValue d_lst
>> ++ ")"
>> execute dbh cmd
>> )
>> (\e -> putStrLn $ "Problem: " ++ show e)
>>
>>
>> Similarly, queries can handle matrices and I like that it is now
>> possible to select those columns or rows from the stored matrix that
>> are needed. E.g.
>>
>> retrieveRecords2 :: Connection -> IO [[Double]]
>> retrieveRecords2 c = do
>> -- query c "select dList[1:2] from trial" >>= collectRows getRow
>> query c "select dList from trial" >>= collectRows getRow
>> where
>> getRow :: Statement -> IO [Double]
>> getRow stmt = do
>> lst <- getFieldValue stmt "dList"
>> return lst
>> readTable2 = do
>> dbh <- connect server database user_id passwd
>> values <- retrieveRecords2 dbh
>> putStrLn $ "dLists are : " ++ (show values)
>>
>>
>> br,
>> Isto
>>
>>
>> 2007/8/1, Alex Jacobson <alex at alexjacobson.com
>> <mailto:alex at alexjacobson.com>>:
>>
>> Out of curiosity, can I ask what you are actually trying to do?
>>
>> I am asking because I am trying to make HAppS a reasonable replacement
>> for all contexts in which you would otherwise use an external
>> relational
>> database except those in which an external SQL database is a specific
>> requirement.
>>
>> -Alex-
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
More information about the Haskell-Cafe
mailing list