[英]Unable to connect to 3rd party ODBC driver in Go with alexbrainman/odbc on Linux
我正在嘗試使用alexbrainman ODBC 驅動程序在 Go 中使用第 3 方 ODBC 驅動程序(可在此處下載)連接到數據源。 我已經使用以下方法測試了有問題的 DSN:
isql -v "CData Redis Source"
那里一切都按預期工作。 而且我知道我安裝了 unixODBC 2.3.1 ( isql --version
)。
當我嘗試運行以下 Go 程序時,我收到此錯誤消息,該消息源自db.Ping()
調用(Google 翻譯似乎無法翻譯):
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()
我會看到同樣的錯誤。
我很樂意翻譯錯誤消息以幫助我調試和/或幫助我確定為什么我的錯誤消息不是英文和/或錯誤消息的實際建議解決方案。
事實證明,我需要確保 CData 驅動程序配置為使用 UTF-16 編碼,這是 unixODBC 所要求的。 為此,我編輯了驅動程序的 INI 文件:
/opt/cdata/cdata-odbc-driver-for-redis/lib/cdata.odbc.redis.ini
[Driver]
DriverManagerEncoding = UTF-16
完成此操作后,CData 驅動程序按預期與 alexbrainman/odbc 數據庫驅動程序(以及其他與 Go 相關的 ODBC 數據庫驅動程序)一起工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.