HDBC-ODBC under Windows
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
A brief description of how to get HDBC-ODBC working under windows, for connecting to things like MS SQL server.
Install
- Ensure your path contains the ghc bin directory:
- Right click on My Computer, select Properties -> Advanced -> Environment variables -> change the variable 'Path'
- Download and install MDAC/ODBC Software Development Kit, from a link on this page:
http://www.microsoft.com/en-us/download/details.aspx?id=5793 - Download and unpack the most recent versions of hdbc and hdbc-odbc hackage.haskell.org
- Follow the README instructions for installing hdbc
- Follow the README instructions for installing hdbc-odbc, with these changes:
- The include-dirs line should be changed to:
include-dirs: . "C:\\Program Files\\Microsoft Data Access SDK 2.8\\Libs\\x86" - Do the following at a command prompt, with the hdbc-odbc directory being current directory:
- The include-dirs line should be changed to:
ghc --make -o setup Setup.hs setup configure setup build setup install
Alternatively, as of the latest hackage build (HDBC-odbc-2.2.3.2) performing a cabal build works using:
cabal update cabal install HBC-odbc
You may need other ODBC drivers, but often they will be installed already on a development box that has the database server installed.
Test
You can test it from a ghci prompt (obviously you'll need to change the connection string and query):
Prelude> :m Database.HDBC Prelude Database.HDBC> :m + Database.HDBC.ODBC Prelude Database.HDBC Database.HDBC.ODBC> let connectionString = "Driver={SQL Server};Server=myserver;Database=mydatabase;Trusted_Connection=yes;" Prelude Database.HDBC Database.HDBC.ODBC> let ioconn = connectODBC connectionString Prelude Database.HDBC Database.HDBC.ODBC> do { conn <- ioconn; vals <- quickQuery conn "SELECT TOP 10 * FROM mytable;" []; print vals } [[SqlString "1",SqlString "Copy",...