无法在Linux上使用alexbrainman/ODBC连接到Go中的第三方ODBC驱动程序



我正试图使用alexbrainman ODBC驱动程序在Go中使用第三方ODBC驱动程序(可在此处下载)连接到数据源。我已经使用测试了有问题的DSN

isql -v "CData Redis Source"

那里一切如常。我知道我已经安装了unixODBC 2.3.1(isql --version)。

问题

当我尝试运行以下Go程序时,我收到了来自db.Ping()调用的错误消息(谷歌翻译似乎无法翻译):

SQLDriverConnect:{㄰こ0}[unixODBC]湉慶楬⁤潣湮捥楴湯猠牴湩⁧祳瑮硡愠⁴湩敤⁸ㅛ㩝

我的代码:

package main
import (
_ "github.com/alexbrainman/odbc"
"database/sql"
"log"
)
func main() {
db, err := sql.Open("odbc","DSN=CData Redis Source")
if err != nil {
log.Fatal(err);
}

var (
name string
)

rows, err := db.Ping()
if err != nil {
log.Fatal(err)
}
}

如果我执行db.Query()db.Prepare(),我会看到相同的错误。

详细信息

  • Ubuntu 16.04.3 LTS
  • unixODBC 2.3.1
  • 用于Redis的CData软件ODBC驱动程序
  • go1.6.2 linux/amd64
  • github.com/alexbrainman/odbc

请求

我很乐意提供错误消息的翻译,以帮助我调试和/或确定错误消息不是英文的原因和/或错误消息的实际建议解决方案。

事实证明,我需要确保CData驱动程序配置为使用UTF-16编码,这是unixODBC所要求的。为此,我编辑了驱动程序的INI文件:

redis/lib/cdata.odbc.redis.ini的/opt/cdata/cdata-odbc驱动程序

[Driver]
DriverManagerEncoding = UTF-16

完成后,CData驱动程序与alexbrainman/odbc数据库驱动程序(以及其他与Go相关的odbc数据库驱动程序)一起工作。

相关内容

  • 没有找到相关文章

最新更新