[Haskell-cafe] Re: Tests
John Goerzen
jgoerzen at complete.org
Tue May 5 17:54:51 EDT 2009
Guenther Schmidt wrote:
> let me first of all thank you for providing the HDBC package. Haskell
> would be a much, much less usefull language without a working database
> interface. I could certainly not have written the app in Haskell
> without it and in any other language I know writing this app would have
> been much more difficult.
Thanks! I'm glad you found it (and Real World Haskell) helpful.
> The problem is what's in the database.
>
> You'd think there'd be a "Günni" in the database, right?
>
> Wrong!
>
> At least this is where your library and Sqlite disagree. Sqlite with any
> GUI client doesn't show a "Günni", it shows a "G!$%§$§%nni". So do MS
> Access and MySql btw.
And now that is REALLY weird, because I can't duplicate it here.
I wrote this little Haskell program:
import Database.HDBC
import Database.HDBC.Sqlite3
main = do dbh <- connectSqlite3 "foo.db"
run dbh "CREATE TABLE foo (bar text)" []
run dbh "INSERT INTO foo VALUES (?)" [toSql "Günther"]
run dbh "INSERT INTO foo VALUES (?)" [toSql "2-G\252nther"]
commit dbh
disconnect dbh
And when I inspect foo.db with the sqlite3 command-line tool:
/tmp$ sqlite3 foo.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite> select * from foo;
Günther
2-Günther
Exactly correct, as expected.
I can read it back correctly from Haskell, too:
import Database.HDBC
import Database.HDBC.Sqlite3
import qualified System.IO.UTF8 as U
main = do dbh <- connectSqlite3 "foo.db"
results <- quickQuery' dbh "SELECT * from foo" []
mapM_ ((print :: String -> IO ()) . fromSql . head) results
mapM_ (U.putStrLn . fromSql . head) results
disconnect dbh
and when I run this:
/tmp$ ./foo3a
"G\252nther"
"2-G\252nther"
Günther
2-Günther
I wonder if there is something weird about your environment: non-unicode
terminals, databases, editors, or something?
For me, it Just Works as it should.
>
> For now I managed to rollback the UTF8 code in the HDBC-2.1 and got my
> app to work as needed.
>
> I hope you find this info useful, thanks once more
>
> Günther
>
>
More information about the Haskell-Cafe
mailing list