From: Immanuel N. <imm...@go...> - 2008-01-27 00:35:39
|
I posted this two weeks ago also to haskell-cafe, but the answers didn't help that much. So I try here again: with the release update haskelldb-0.9 -> haskelldb-0.10 several things have changed. Unfortunately the API documentation does not give enough information in generall. Is there any additional uptodate documentation around? In particular the fundamental function "connect" hast a new signature: *connect* :: (forall m a . MonadIO<http://hackage.haskell.org/packages/archive/mtl/1.1.0.0/doc/html/Control-Monad-Trans.html#t%3AMonadIO>m => [( String<http://hackage.haskell.org/packages/archive/base/3.0.0.0/doc/html/Data-Char.html#t%3AString>, String<http://hackage.haskell.org/packages/archive/base/3.0.0.0/doc/html/Data-Char.html#t%3AString>)] -> (Database -> m a) -> m a) I don't know what pairs of strings this function needs. The API description is to unspecific: The connect function takes some driver specific name, value pairs use to > setup the database connection, and a database action to run. What are the specific name value pairs needed (for a connection to a mysql db )? I got the following hint: > Your best bet is to download the appropriate drivers - either > haskelld-hdbc-mysql or haskelldb-hsql-mysql. If you get the haskelldb > sources via darcs, you can also look in the test directory to see how the > connections are established. > > In my specific case, I am using PostgreSQL and by login function looks > like this: > > -- ^ Returns a function which can log into the database and perform > operations. > login :: MonadIO m => String -> Int -> String -> String -> String -> > (Database -> m a) -> m a > login server port user password dbname = postgresqlConnect [("host", > server), > ("port", show port), > ("user", user), > ("password", password), > ("dbname", dbname)] I don't understand how to map this to my problem. What in fact do I have to install? For MySQL there seem to be the following dependencies when I try to setup haskelldb-hsql-mysql-0.10 froma hackage: - haskelldb-hsql-0.10 - hsql-1.7 - hsql-mysql-1.7 I haven't manage to install them with ghc-6.8.2 yet. Nevertheless I wouldn't know how to use this "cpnnect" function. Moreover, in contrast to the haddock type description I observe with ghci and :t connect the following type: connect :: (MonadIO m) => DriverInterface -> [(String, String)] -> (Database.HaskellDB.Database.Database -> m a) -> m a I don't what to take for "DriverInterface"? The API docu says: "Default dummy driver, real drivers should overload this" How should this be done concretely for MySQL? Some more detailed docu would be helpful. Thanks, Immanuel |