将 ODBC 转到 iSeries:SQL0104 - 无法成功转换消息

我正在尝试使用 ODBC 查询使用https://code.google.com/p/odbc/的 IBM iSeries 服务器 (IBM i) 。我似乎认为我在第一次测试时已经工作了一段时间,但服务器已经更新,iSeries Access 更新,我使用的是 Go 1.3.1


似乎连接正常,但查询导致错误。我猜我在驱动程序或查询的编码正确时遗漏了一些东西,但我不确定如何解决它,或者它是否可能是 odbc 库的错误,我应该在那里打开一个问题。


我的代码如下:


package main


import (

    _ "code.google.com/p/odbc"

    "database/sql"

    "fmt"

    "log"

)


func main() {

    db, err := sql.Open("odbc", `

        Driver=iSeries Access ODBC Driver;

        System=myhost;

        Uid=myuserid;

        Pwd=mypassword`)

    if err != nil {

        log.Fatal(err)

    }

    defer db.Close()


    rows, err := db.Query("SELECT 1 FROM sysibm.sysdummy1")

    if err != nil {

        log.Fatal(err)

    }


    var number int

    for rows.Next() {

        rows.Scan(&number)

    }

    fmt.Println(number)

}

运行上述程序时,我收到以下错误消息:


SQLPrepare: {42000} [IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0104 - Error message text unavailable.

Message can not be translated successfully.

任何想法出了什么问题,我可以检查什么,或者我如何让它工作?


繁星点点滴滴
浏览 238回答 2
2回答

蝴蝶不菲

只是在黑暗中拍摄 - 系统 CCSID 设置为什么?DSPSYSVAL QCCSID。如果是 65535,则表示系统语言是“二进制 - 不翻译”。如果是这种情况,您可能需要在连接字符串中设置 CCSID。

开心每一天1111

我在 Ubuntu 18 和 Centos 8 上遇到了同样的问题(虽然使用 .net)。它适用于 Centos 7。找不到任何调整 odbc 配置或连接字符串的解决方法。但是在将驱动程序升级到 1.1.0.13 后,该问题得到了解决。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go