unixOBC、Golang、Informix,Ubuntu

unixOBC, Golang, Informix, Ubuntu

我目前正在尝试 ping 一个 informix 数据库,

db, err := sql.Open("odbc","DNS=x")

if err != ni { 
  log.Fatal(err)
}

if err := db.Ping(); err != nil {
  log.Printf("ping failed %#v", err)
} else {
  log.Printf("ping success")
}

defer db.Close()

我收到这样的错误...

State: "H", NativeError:"-11060", Message:"[unixODBC]["

isql 工作正常,但我无法通过 alexbrainman odbc 驱动程序运行。 Windows 也很好用。任何帮助将不胜感激。

原来是配置问题。显然,根据 informix 文档,odbc.ini 必须以 UCS-2 或 UCS-4 编码。这就是 unixODBC 使用配置文件的方式。

接近odbc.ini的末尾,有一个[ODBC]部分,像这样取消注释UNICODE选项

;
; UNICODE connection Section
;
[ODBC]
;uncomment the below line for UNICODE connection
UNICODE=UCS-2
;
; Trace file Section
;
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/extra/informix
TRACEDLL=idmrs09a.so