Linux + FreeTDS + unixODBC + Haskell 访问 SQL Server 数据库

把配置过程记录下来,方便以后自己查找。

环境: Ubuntu

安装:

1. apt-get install unixodbc freetds ...

2. 配置 FreeTDS

/etc/freetds/freetds.conf

增加一个数据源:

[yourserver]

host = [IP]

port = 1433

tds version = 7.0

3. 测试 freetds

使用 tsql 连接测试:

#tsql -S yourserver -U USERNAME -P PASSWORD

4. 配置 unixodbc:

配置驱动

/etc/odbcinst.ini

[FreeTDS]

Description = MS Sql server

Driver = /user/lib/odbc/libtdsodbc.so

Setup = /usr/lib/odbc/libtdsS.so

FileUsage = 1

配置数据源:

/etc/odbc.ini

[yourserver]

Driver = FreeTDS # 就是 odbcinst.ini 中的名字

Description = your sql server

Servername = yourserver # freetds 中的名字

Database = [initdatabase]

5. 使用 isql 测试 unixodbc 配置:

#isql -v yourserver USERNAME PASSWORD

6. 安装 Haskell HDBC 驱动

# cabal install hdbc-odbc

7. 在 haskell 中访问Sql Server

testodbc.hs

module Main where

import Database.HDBC.ODBC

import Database.HDBC

main = do

conn <- connectODBC "DSN=yourserver;UID=USERNAME;PWD=PASSWORD"

vals <- quickQuery conn "select top 10 id from testtable;" []

mapM_ print vals

你可能感兴趣的:(sql,linux,SQL Server,ubuntu,haskell)