ubuntu 14.04下利用odbc连接MSSQL

作者: forrestsun 2017-01-18 15:29:13

为了能够使用linux下golang环境连接sqlserver 2008查了很多资料,最终采用unixodbc freetds等连接成功。


 


运行以下shell:


#!/bash/bin sudo apt-get update && sudo apt-get upgrade -y sudo apt-get install unixodbc unixodbc-bin unixodbc-dev freetds-bin freetds-dev tdsodbc -y echo "===================================================" echo "[FreeTDS] Description = FreeTDS Driver v0.91 Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so fileusage=1 dontdlclose=1UsageCount=1client charset=utf-8" | sudo tee -a /etc/odbcinst.iniecho "[testdb]Driver = FreeTDS Description = My Test Server Trace = No ServerName = demosql #这里对应下面的freetds.conf中的名称 Port = 1433Database = db_demo  #修改为你需要连接的数据库名称 TDS_Version = 7.2" | sudo tee -a /etc/odbc.iniecho "[demosql]host =192.168.1.1 #这里填写自己的数据库地址 Port = 1433tds version = 7.2 #连接sql2008,根据freetds官方网站说法,可以使用7.2版本 #http://www.freetds.org/userguide/choosingtdsprotocol.htm " | sudo tee -a /etc/freetds/freetds.confecho "==================================================="echo "isql -v testdb username passwd"


 


完成后利用 isql -v DSN名称 用户名 密码进行连接测试


测试成功后下载go所需的odbc包


go get -v -u github.com/weigj/go-odbc


 


接下来编写一个测试程序:


package main


import (


"fmt"


"github.com/weigj/go-odbc"


)


func main() {


conn, _ := odbc.Connect("DSN=testdb;UID=sa;PWD=password")


stmt, _ := conn.Prepare("select top 10 * from studentinfo")


stmt.Execute()


rows, _ := stmt.FetchAll()


for i, row := range rows {


fmt.Println(i, row)


}


stmt.Close()


conn.Close()


}


 


结果:


[ `run` | done: 20.224378ms ]    


0 &{[28]}    


1 &{[23]}    


2 &{[42]}    


3 &{[23]}    


4 &{[24]}   


5 &{[25]}    


6 &{[32]}    


7 &{[42]}    


8 &{[35]}    


9 &{[30]}


 


本文永久更新地址:http://www.linuxdiyf.com/linux/27920.html

相关资讯