ODBC database driver for Go:Go语言通过ODBC 访问SQL s

迪克猪 · · 2278 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Go语言通过ODBC 访问SQL server,这里需要用到go-odbc库,开源地址::https://github.com/weigj/go-odbc

一、驱动安装

在cmd中打开GOPATH:

image

转到src目录

image

在src目录通过git获取odbc驱动:

git clone git://github.com/weigj/go-odbc.git odbc
image
转到odbc目录:
image
运行go install命令:
image

提示未安装 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/)安装过程:

image

image

image

配置Gcc环境,打开系统变量,修改Path,添加E:\Program Files\mingw-w64\x86_64-5.3.0-posix-seh-rt_v4-rev0\mingw64\bin,如下图:

image

再次运行go install命令,不在提示错误信息,如下图:

image

三、示例程序

思路:链接数据库->创建一个查询->显示查询结果

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 }

问题来了,通过命令行运行成功:

image

通过VSC运行,提示如下错误:

image

分析原因:在D:\GoWorks目录下my first go.go文件与access-sqlserver.go,都有main函数。

解决办法:修改my first go.go文件中main函数名称为maina。

在次调试,成功:

image

总结,在VSC中,编译的是相同目录下的所有文件。


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:迪克猪

查看原文:ODBC database driver for Go:Go语言通过ODBC 访问SQL s

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2278 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传