Haskell SQLite-Простой пользовательский запрос - PullRequest
0 голосов
/ 15 ноября 2018

С помощью приведенного ниже кода я получаю сообщение об ошибке в количестве аргументов, хотя в документации сказано, что так и должно быть:

extractData :: IO ()
extractData = do
  userToolIDSelect <- getLine
  connection <- open "tools.db"
  resp <- query_ connection "SELECT * FROM tools WHERE toolID = (?)" (Only userToolIDSelect) :: IO [Tool]
  mapM_ print resp

Но если я изменю код, чтобы иметь фиксированный параметр ID, например, так: resp <- query_ connection "SELECT * FROM tools WHERE toolID = 1;" :: IO [Tool] отлично работает.

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 15 ноября 2018

query_ функция не выполняет подстановку. Замените его на функцию query, и она должна работать.

Соответствующие документы: https://www.stackage.org/haddock/lts-12.18/sqlite-simple-0.4.16.0/Database-SQLite-Simple.html#v:query_

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...