为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
繁星点点滴滴 2021-08-16 16:02:48
我正在尝试使用 ODBC 查询使用https://code.google.com/p/odbc/的 IBM iSeries 服务器 (IBM i) 。我似乎认为我在第一次测试时已经工作了一段时间,但服务器已经更新,iSeries Access 更新,我使用的是 Go 1.3.1似乎连接正常,但查询导致错误。我猜我在驱动程序或查询的编码正确时遗漏了一些东西,但我不确定如何解决它,或者它是否可能是 odbc 库的错误,我应该在那里打开一个问题。我的代码如下:package mainimport (    _ "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.任何想法出了什么问题,我可以检查什么,或者我如何让它工作?
查看完整描述

2 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-08-16
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

我在 Ubuntu 18 和 Centos 8 上遇到了同样的问题(虽然使用 .net)。它适用于 Centos 7。找不到任何调整 odbc 配置或连接字符串的解决方法。但是在将驱动程序升级到 1.1.0.13 后,该问题得到了解决。


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 237 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信