Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Generic use of queries postgresql-simple (Pietro Grandinetti)
----------------------------------------------------------------------
Message: 1
Date: Thu, 9 Feb 2023 14:08:05 +0000
From: Pietro Grandinetti <[email protected]>
To: "[email protected]" <[email protected]>
Subject: [Haskell-beginners] Generic use of queries postgresql-simple
Message-ID:
<db9p191mb15142db64147c59d40685aeefc...@db9p191mb1514.eurp191.prod.outlook.com>
Content-Type: text/plain; charset="iso-8859-1"
Hello--
I use postgresql-simple and for selecting rows from one table I have the
following function.
runMyQuery :: Connection
-> String -- query with '?' params to bind
-> Int -- first param
-> Int -- second param
-> IO [MyTable1]
runMyQuery conn dbQuery param1 param2 = query conn dbQuery $ (param2, param2)
data MyTable1 = MyTable1 {col1 :: Int, col2 :: Int, col3 :: String}
instance FromRow MyTable1 where fromRow = MyTable1 <$> field <*> field <*>
field <*> field
There are some things I'd like to improve:
1. I will have to write "MyTable1", "MyTable2", ... datatypes, one for each
table, but would like to have only one function runMyQuery where the return
type is a generic IO [MyModel]. My problem is that I don't know how to write it
for tables with different number of columns and different SQL types.
2. The 2nd to the penultimate arguments of runMyQuery are the arguments to
bind into the SQL string query. This means that I should write several
different version of "runMyQuery" each with a different number of arguments,
but would like to have only one.
Can you recommend some approaches?
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20230209/021c8509/attachment-0001.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 169, Issue 1
*****************************************