0

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

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

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

现在为了创建这些网络服务,我需要访问我们的数据库。我将我们的测试服务器配置为允许使用 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 包试试运气吗?如果是这样:推荐什么包?

4

3 回答 3

2

https://github.com/BenoyRNair/godbc是非常古老的软件包。正如您所发现的,它甚至不再编译。

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

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

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

亚历克斯

于 2012-12-21T22:56:45.243 回答
1

看起来那段代码是在 Go 没有自动分号插入规则之前编写的,现在即使 gofix 也不会触及那样的代码。我对 ODBC 了解不多,但我认为使用不同的包会更好。

于 2012-12-21T18:52:40.993 回答
0

大多数将 Go 与 Microsoft SQL Server 一起使用的人似乎将驱动程序包github.com/denisenkom/go-mssqldb与标准database/sql包一起使用。

我对Go with SQL Server 驱动程序无法成功连接、登录失败的回答可能会帮助您或其他任何人,其中详细说明了我为使演示程序工作所经历的一些事情。我必须进行几处 SQL Server 配置更改。

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

That example works with SQL Server installed as a default instance on the local machine.

于 2016-08-18T13:27:35.700 回答