为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: v8.1.2.128_ent_x86_64_ctm_pack4
【操作系统】:Server:KylinV10SP2, Client:MacOS
【CPU】: Server:Intel® Xeon® CPU E5-2660 v2 @ 2.20GHz Client:Intel
【问题描述】*:从官网下载的驱动,放到src后,报错undefined: initThirdPartCipher等等,如图:
package db
import (
"database/sql"
_ "dm"
"encoding/json"
"fmt"
)
var db *sql.DB
type Author struct {
ID int `json:"id"`
Name string `json:"name"`
Age string `json:"age"`
}
func List() ([]*Author, error) {
var err error
db, err = sql.Open("dm", "dm://SYSDBA:密码@localhost:5236?autoCommit=true")
if err != nil {
return nil, err
}
defer db.Close()
if err = db.Ping(); err != nil {
return nil, err
}
q := "SELECT * FROM author"
rows, err := db.Query(q)
if err != nil {
return nil, err
}
var authors = make([]*Author, 0)
for rows.Next() {
if err = rows.Scan(&authors); err != nil {
continue
}
}
bData, err := json.Marshal(authors)
if err != nil {
return nil, err
}
fmt.Println("data: ", string(bData))
return authors, nil
}
目前找到的原因是dm/security/下没有提供darwin的文件,导致在无法在MacOS上编译。
临时的解决方案是把dm/security/zzh_linux.go复制一份,命名为dm/security/zzh_darwin.go,但是不确定会不会有兼容性问题。