Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc
一、驱动安装
在cmd中打开GOPATH:
转到src目录
在src目录通过git获取odbc驱动:
git clone git://github.com/weigj/go-odbc.git odbc
转到odbc目录:
运行go install命令:
提示未安装 gcc 编译程序,到官方网站下载http://tdm-gcc.tdragon.net/。
二、安装gcc
或者Download mingw-w64-install.exe (170.0 kB),安装之后重启。
下图是mingw-w64-install.exe(https://sourceforge.net/projects/mingw-w64/)安装过程:
配置Gcc环境,打开系统变量,修改Path,添加E:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin,如下图:
再次运行go install命令,不在提示错误信息,如下图:
三、示例程序
思路:链接数据库->创建一个查询->显示查询结果
package main import ( "database/sql"
"fmt" _ "odbc/driver" ) func main() { fmt.Printf("%s\n", "创建数据库链接") conn, err := sql.Open("odbc", "Driver={SQL Server};SERVER=.\\sql2008;UID=sa;PWD=admin@163.com;DATABASE=DTcmsdb4") if err != nil { fmt.Println("链接错误") return } defer conn.Close() fmt.Printf("%s\n", "构建查询") stmt, err := conn.Prepare("select id from dt_article") if err != nil { fmt.Println("查询异常:", err) return } defer stmt.Close() row, err := stmt.Query() if err != nil { fmt.Println("查询错误:", err) } defer row.Close() fmt.Printf("%s\n", "数据集显示") for row.Next() { var id int
if err := row.Scan(&id); err == nil { fmt.Println(id) } } fmt.Printf("%s\n", "完成查询") return }
问题来了,通过命令行运行成功:
通过VSC运行,提示如下错误:
分析原因:在D:\GoWorks目录下my first go.go文件与access-sqlserver.go,都有main函数。
解决办法:修改my first go.go文件中main函数名称为maina。
在次调试,成功:
总结,在VSC中,编译的是相同目录下的所有文件。
有疑问加站长微信联系(非本文作者)