ODBC连接失败
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】: V8.8
【操作系统】: 麒麟V10
【CPU】:
【问题描述】*: 使用GO代码以及ODBC连接8s失败,trace提示
ppid=003756e6,pid=00000000 ENTER SQLSetConnectAttrW
SQLHDBC 0x044E1910
SQLINTEGER 115
SQLPOINTER 0x7FEFF88C574C
SQLINTEGER 0
SQLINTEGER * 0x00000000
ppid=003756e6,pid=00000000 EXIT SQLSetConnectAttrW
SQLHDBC 0x044E1910
SQLINTEGER 115
SQLPOINTER 0x7FEFF88C574C
SQLINTEGER 0
SQLINTEGER * 0x00000000 with return code -1 (SQL_ERROR)
返回错误:
H [[
使用isql可以连接成功,也就是ODBC配置应该是对的
cli sdk版本:
[root@localhost cli]# esql -V
clientsdk_3.6.3_3X2_1_783c8d
odbc.ini:
[ODBC Data Sources]
test=GBase ODBC DRIVER
[test]
Driver=/opt/GBASE/gbase/lib/cli/iclis09b.so
Description=GBase ODBC DRIVER
CursorBehavior=0
Servername=gbase01
Database=gbasedb
LogonID=gbasedbt
pwd=GBase@123
CLIENT_LOCALE=zh_CN.utf8
DB_LOCALE=zh_CN.utf8
;sqlmode=oracle
GL_USEGLU=1
TRANSLATIONDLL=/opt/GBASE/gbase/lib/esql/igo4a304.so
[ODBC]
Trace=0
TraceFile=/tmp/odbctrace.out
InstallDir=/opt/GBASE/gbase
TRACEDLL=idmrs09a.so
odbcinst.ini:
[GBase ODBC DRIVER]
Driver=/opt/GBASE/gbase/lib/cli/iclit09b.so
Setup=/opt/GBASE/gbase/lib/cli/iclit09b.so
APILevel=1
FileUsage=0
SQLLevel=1
go代码:
func checkErr(err error) {
if err != nil {
panic(hex.EncodeToString([]byte(err.Error())))
}
}
func (p *GBASE8S) init_drv() {
driverName := `odbc`
connStr := fmt.Sprintf("DSN=test;UID=%v;PWD=%v", p.Config.User, p.Config.Pwd)
fmt.Println(`ODBC String:`, connStr)
tdb, err := sql.Open(driverName, connStr)
if err == nil {
if e := tdb.Ping(); e == nil {
p.dbConn = tdb
p.dbConn.SetMaxOpenConns(100)
p.dbConn.SetMaxIdleConns(5)
p.dbConn.SetConnMaxIdleTime(0)
p.dbConn.SetConnMaxLifetime(1 * time.Hour)
} else {
fmt.Println(`ping fail:`, e.Error())
checkErr(e)
}
} else {
fmt.Println(`Connect database fail`, err)
checkErr(err)
}
}
评论
我用的go-odbc
[root@localhost lib]# ldd libclntsh_gbase.so
linux-vdso.so.1 (0x0000fffde95a0000)
libthsql.so => not found
libthgen.so => not found
libthos.so => not found
libthasf.so => not found
libifgls.so => not found
libifglx.so => not found
libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x0000fffde9120000)
libm.so.6 => /usr/lib64/libm.so.6 (0x0000fffde9050000)
libdl.so.2 => /usr/lib64/libdl.so.2 (0x0000fffde9020000)
libcrypt.so.1 => /usr/lib64/libcrypt.so.1 (0x0000fffde8fc0000)
libc.so.6 => /usr/lib64/libc.so.6 (0x0000fffde8e30000)
/lib/ld-linux-aarch64.so.1 (0x0000fffde95b0000)
单独引用这个库时提示这个错误
热门帖子
- 12025-12-01浏览数:182764
- 22023-05-09浏览数:25062
- 42023-09-25浏览数:18526
- 52020-05-11浏览数:17529