gpt4 book ai didi

go - DB2 AS/400 使用 Go 进行查询

转载 作者:IT王子 更新时间:2023-10-29 01:59:57 26 4
gpt4 key购买 nike

我正在尝试将 Golang 与 AS/400 DB2 数据库连接起来,我在机器上安装了 iSeries Access 驱动程序,这是现在的代码:

package main

import (
"odbc"
)

func main() {
conn, _ := odbc.Connect("DSN=DSN/SCHEME;UID=USER;PWD=PASS")
stmt, _ := conn.Prepare("SELECT * FROM SCHEME.TABLE")
stmt.Execute()
rows, _ := stmt.FetchAll()
for i, row := range rows {
println(i, row)
}
stmt.Close()
conn.Close()
}

我能够在 ODBC 驱动程序上使用 Python 和 DSN-Less 配置来做到这一点,就像这样:

con = pyodbc.connect('DRIVER=iSeries Access ODBC Driver;SYSTEM=DSN;UID=USR;PWD=PASS;DBQ=PRUEBA')

我尝试在 Golang 上使用 odbc、mgodbc 和 db2cli,总是遇到无效内存地址或 nil 指针取消引用错误。

感谢任何帮助,谢谢!

最佳答案

更新 – bitbucket.org/phiggins/db2cli现已列于https://github.com/golang/go/wiki/SQLDrivers


我们正在使用 bitbucket.org/phiggins/db2cli ,它基于出色的code.google.com/p/odbc 库,并且运行良好!

package main

import (
"database/sql"
"log"
"time"

_ "bitbucket.org/phiggins/db2cli"
)

func main() {
db, err := sql.Open("db2-cli", "DATABASE=testdb; HOSTNAME=db2.domain.com; PORT=1234; PROTOCOL=TCPIP; UID=user1; PWD=password1;")
if err != nil {
log.Fatalln(err)
}
defer db.Close()
var t time.Time
row := db.QueryRow("SELECT current date FROM sysibm.sysdummy1;")
err = row.Scan(&t)
if err != nil {
log.Fatalln(err)
}
log.Println(t)
}

关于go - DB2 AS/400 使用 Go 进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com