[Haskell-beginners] database error simply by using a sting in a variable

Damien Mattei mattei at oca.eu
Wed Dec 5 16:02:48 UTC 2018


why i'm getting this error?

code:

let name = "'A    20'"
    let qry = "select `N° BD` from Coordonnées where Nom = " ++ name

    putStrLn qry

    bd_rows <- query_ conn qry


    putStrLn $ show bd_rows
    putStrLn $ show name

    forM_ bd_rows $ \(Only a) ->
      putStrLn $  Text.unpack a



error:

*Main> :load UpdateSidonie
[1 of 1] Compiling Main             ( UpdateSidonie.hs, interpreted )

UpdateSidonie.hs:74:28: error:
    • Couldn't match expected type ‘Query’ with actual type ‘[Char]’
    • In the second argument of ‘query_’, namely ‘qry’
      In a stmt of a 'do' block: bd_rows <- query_ conn qry
      In the expression:
        do conn <- connect
                     defaultConnectInfo
                       {connectHost = "moita", connectUser = "mattei",
                        connectPassword = "sidonie2", connectDatabase =
"sidonie"}
           rows <- query_
                     conn
                     "SELECT Nom,distance FROM AngularDistance WHERE
distance > 0.000278"
           forM_ rows
             $ \ (name, distance)
                 -> putStrLn $ unpack name ++ " " ++ show (distance ::
Double)
           let name = "'A    20'"
           ....
   |
74 |     bd_rows <- query_ conn qry
   |                            ^^^
Failed, no modules loaded.


-- 
Damien.Mattei at unice.fr, Damien.Mattei at oca.eu, UNS / OCA / CNRS


More information about the Beginners mailing list