Hi,<br><br>I&#39;d like to store small matrices into a db. Number of rows and columns may vary in a way not <br>known in advance. One might use a relation (matrixId, col, row, value) or something like that<br>but if it is possible to put a matrix in one command into db, some queries will be easier. 
<br>E.g., one relation can store several matrices and it would be easy to query, how many <br>matrices are stored currently. With that above four tuple you can find out the number of unique<br>matrixId&#39;s, too, but it is not as easy as with matrices. 
<br><br>Anyhow, now I&#39;m not sure if I should stick with HSQL any more... Earlier comments on this<br>thread made me think that maybe it would be a better idea to try to learn enough HDBC.<br><br>This would be used in a server application. Is HAppS applicable here?
<br><br>e.g. after some tweaking the following works with HSQL:<br><br>addRows = do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbh &lt;- connect server database user_id passwd<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intoDB dbh ([555,111, 50, 1000]::[Int]) ([21.0,22.0,23.0,24.0]::[Double])
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intoDB dbh ([556,111, 50, 1000]::[Int]) ([21.0,22.0,23.0,24.0]::[Double])<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intoDB dbh ([]::[Int]) ([]::[Double])<br>&nbsp;&nbsp; where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intoDB dbh i_lst d_lst = <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catchSql (do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; let cmd = &quot;INSERT INTO trial (intList, dList) VALUES (&quot; ++ 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; toSqlValue i_lst ++ &quot;,&quot; ++ toSqlValue d_lst ++ &quot;)&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; execute dbh cmd<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (\e -&gt; putStrLn $ &quot;Problem: &quot; ++ show e)
<br><br><br>Similarly, queries can handle matrices and I like that it is now<br>possible to select those columns or rows from the stored matrix that<br>are needed.&nbsp; E.g.<br><br>retrieveRecords2 :: Connection -&gt; IO [[Double]]
<br>retrieveRecords2 c = do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- query c &quot;select dList[1:2] from trial&quot; &gt;&gt;= collectRows getRow <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; query c &quot;select dList from trial&quot; &gt;&gt;= collectRows getRow <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getRow :: Statement -&gt; IO [Double]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getRow stmt = do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lst&nbsp;&nbsp; &lt;- getFieldValue stmt &quot;dList&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return lst<br>readTable2 = do
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbh &lt;- connect server database user_id passwd<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; values &lt;- retrieveRecords2 dbh<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; putStrLn $ &quot;dLists are : &quot; ++ (show values) <br><br><br>br,<br>Isto<br><br><br><div><span class="gmail_quote">
2007/8/1, Alex Jacobson &lt;<a href="mailto:alex@alexjacobson.com">alex@alexjacobson.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Out of curiosity, can I ask what you are actually trying to do?<br><br>I am asking because I am trying to make HAppS a reasonable replacement<br>for all contexts in which you would otherwise use an external relational<br>
database except those in which an external SQL database is a specific<br>requirement.<br><br>-Alex-<br><br></blockquote></div>