数据库连接的方法不是很懂. 如果有描述错误, 请见谅.
jdbc:as400://hostname/database
https://github.com/ibmdb/go_ibm_db
去访问的时候, package main
import (
"database/sql"
"fmt"
_ "github.com/ibmdb/go_ibm_db"
)
const (
HOSTNAME = "HOSTNAME"
DATABASE = "DATABASE"
UID = "UID"
PWD = "PWD"
)
func main() {
con := "HOSTNAME=HOSTNAMEl;DATABASE=DATABASE;PORT=50000;UID=UID;PWD=PWD"
type Db *sql.DB
var re Db
re = Create_Con(con)
err := display(re)
if err != nil {
fmt.Println(err)
}
}
func Create_Con(con string) *sql.DB {
db, err := sql.Open("go_ibm_db", con)
if err != nil {
fmt.Println(err)
return nil
}
return db
}
func display(db *sql.DB) error {
st, err := db.Prepare("select * from RIDCPNM")
if err != nil {
return err
}
err = execquery(st)
if err != nil {
return err
}
return nil
}
func execquery(st *sql.Stmt) error {
rows, err := st.Query()
if err != nil {
return err
}
cols, _ := rows.Columns()
fmt.Println(cols)
return nil
}
抛错
SQLDriverConnect: {08001} [IBM][CLI Driver] SQL30081N A communication error has been detected. Communicati
on protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was d
etected: "HOSTNAME". Communication function detecting the error: "recv". Protocol specific error code(
s): "10054", "*", "0". SQLSTATE=08001
是目标 as400 所在的机器, 没有开通啥(防火墙, 端口)吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.