尝试在Go中使用包时出错 - 需要帮助修复

时间:2012-12-21 18:48:40

标签: sql-server macos odbc go

首先,我是Go语言的新手。

我决定创建我们作为业余爱好项目开发的一些.NET服务的Go版本。尝试这个的原因是:

  • 我对Go语言有点感兴趣。
  • 我认为.NET网络服务可以得到很大改善,但我不是我们公司的.NET开发人员。

现在,为了创建这些Web服务,我需要访问我们的数据库。我将测试服务器配置为允许使用ODBC访问数据库。

下一步:在Go应用程序中获取ODBC连接。有几个Go ODBC包可用,目前我正在尝试使用这个:https://github.com/BenoyRNair/godbc

项目中包含的是一个例子。当我尝试运行该示例时,我收到以下错误消息:

MacBook-Air:go wolf$ go run example.go 
# godbc
godbc.go:77:2: expected declaration, found '('
godbc.go:81:2: expected declaration, found 'IDENT' x
godbc.go:104:2: expected declaration, found 'IDENT' dsn
godbc.go:109:2: expected declaration, found 'IDENT' returnInt
godbc.go:132:2: expected declaration, found 'IDENT' driver
godbc.go:137:2: expected declaration, found 'IDENT' returnInt
godbc.go:161:2: expected declaration, found 'IDENT' outConnectionString
godbc.go:185:2: expected declaration, found 'IDENT' messageText
godbc.go:188:2: expected declaration, found 'IDENT' returnInt
godbc.go:212:2: expected declaration, found 'IDENT' returnInt
godbc.go:230:2: expected declaration, found 'IDENT' returnInt
godbc.go:242:2: expected declaration, found 'IDENT' returnInt
godbc.go:275:2: expected declaration, found 'IDENT' returnInt
godbc.go:291:2: expected declaration, found 'IDENT' buffer
godbc.go:336:2: expected declaration, found 'for'

现在我不确定如何处理这个错误。我认为错误可能与文件的格式有关,但也许还有其他东西在手边。当我查看github页面时,在问题选项卡上,我注意到其他人提到了同样的问题,但是注意到代码没有使用最新版本的Go进行编译,所以我认为它已经编译过了。

有没有人知道这个问题是否有一些简单的解决方法,还是我应该试试其他一些ODBC包?如果是这样的话:推荐什么套餐?

3 个答案:

答案 0 :(得分:2)

https://github.com/BenoyRNair/godbc是一个很老的包。正如你所发现的,它甚至不再编译。

Go现在有数据库/ sql标准包来访问任何sql数据库。它提供了接口,但您还需要一个“驱动程序包”来实现对所选数据库的访问。这种设计的想法是你可以替换“驱动程序包”来访问不同的数据库。大多数(如果不是全部)用户代码都不应更改。

除非您需要某些ODBC特定功能,否则您应该尝试使用database / sql包。这将允许您尝试不同的驱动程序,直到找到适合您的驱动程序。

我自己编写了ODBC驱动程序http://code.google.com/p/odbc/。我用它来访问MS SQL Server。也许,它会对你有用。

亚历

答案 1 :(得分:1)

看起来代码是在Go拥有自动分号插入规则之前编写的,即使gofix也不会像现在这样触及代码。我对ODBC知之甚少,但我认为使用不同的软件包会更好。

答案 2 :(得分:0)

大多数使用Go with Microsoft SQL Server的人似乎都在使用驱动程序包github.com/denisenkom/go-mssqldb以及标准database/sql程序包。

我对Go with SQL Server driver is unable to connect successfully, login fail的回答可能会帮助您或其他任何人,其中详细说明了我为完成演示程序所做的一些工作。我必须进行一些SQL Server配置更改。

 - enable SQL Server Authentication as well as Windows Authentication
 - enable TCP connections
 - create SQL Server user and assign necessary permissions

该示例适用于作为本地计算机上的默认实例安装的SQL Server。