未验证 提交 b68d5e88 编写于 作者: P plum-lihui 提交者: GitHub

Merge pull request #696 from taosdata/feature/tliu

[TBASE-1047] 
...@@ -29,46 +29,47 @@ import ( ...@@ -29,46 +29,47 @@ import (
"unsafe" "unsafe"
) )
func (mc *taosConn) taosConnect(ip, user, pass, db string, port int) (taos unsafe.Pointer, err error){ func (mc *taosConn) taosConnect(ip, user, pass, db string, port int) (taos unsafe.Pointer, err error) {
cuser := C.CString(user) cuser := C.CString(user)
cpass := C.CString(pass) cpass := C.CString(pass)
cip := C.CString(ip) cip := C.CString(ip)
cdb := C.CString(db) cdb := C.CString(db)
defer C.free(unsafe.Pointer(cip)) defer C.free(unsafe.Pointer(cip))
defer C.free(unsafe.Pointer(cuser)) defer C.free(unsafe.Pointer(cuser))
defer C.free(unsafe.Pointer(cpass)) defer C.free(unsafe.Pointer(cpass))
defer C.free(unsafe.Pointer(cdb)) defer C.free(unsafe.Pointer(cdb))
taosObj := C.taos_connect(cip, cuser, cpass, cdb, (C.int)(port)) taosObj := C.taos_connect(cip, cuser, cpass, cdb, (C.int)(port))
if taosObj == nil { if taosObj == nil {
return nil, errors.New("taos_connect() fail!") return nil, errors.New("taos_connect() fail!")
} }
return (unsafe.Pointer)(taosObj), nil return (unsafe.Pointer)(taosObj), nil
} }
func (mc *taosConn) taosQuery(sqlstr string) (int, error) { func (mc *taosConn) taosQuery(sqlstr string) (int, error) {
taosLog.Printf("taosQuery() input sql:%s\n", sqlstr) //taosLog.Printf("taosQuery() input sql:%s\n", sqlstr)
csqlstr := C.CString(sqlstr) csqlstr := C.CString(sqlstr)
defer C.free(unsafe.Pointer(csqlstr)) defer C.free(unsafe.Pointer(csqlstr))
code := int(C.taos_query(mc.taos, csqlstr)) code := int(C.taos_query(mc.taos, csqlstr))
if 0 != code { if 0 != code {
mc.taos_error() mc.taos_error()
errStr := C.GoString(C.taos_errstr(mc.taos)) errStr := C.GoString(C.taos_errstr(mc.taos))
taosLog.Println("taos_query() failed:", errStr) taosLog.Println("taos_query() failed:", errStr)
return 0, errors.New(errStr) taosLog.Printf("taosQuery() input sql:%s\n", sqlstr)
} return 0, errors.New(errStr)
}
// read result and save into mc struct // read result and save into mc struct
num_fields := int(C.taos_field_count(mc.taos)) num_fields := int(C.taos_field_count(mc.taos))
if 0 == num_fields { // there are no select and show kinds of commands if 0 == num_fields { // there are no select and show kinds of commands
mc.affectedRows = int(C.taos_affected_rows(mc.taos)) mc.affectedRows = int(C.taos_affected_rows(mc.taos))
mc.insertId = 0 mc.insertId = 0
} }
return num_fields, nil return num_fields, nil
} }
func (mc *taosConn) taos_close() { func (mc *taosConn) taos_close() {
...@@ -76,8 +77,8 @@ func (mc *taosConn) taos_close() { ...@@ -76,8 +77,8 @@ func (mc *taosConn) taos_close() {
} }
func (mc *taosConn) taos_error() { func (mc *taosConn) taos_error() {
// free local resouce: allocated memory/metric-meta refcnt // free local resouce: allocated memory/metric-meta refcnt
//var pRes unsafe.Pointer //var pRes unsafe.Pointer
pRes := C.taos_use_result(mc.taos) pRes := C.taos_use_result(mc.taos)
C.taos_free_result(pRes) C.taos_free_result(pRes)
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册