NextResultSet
NextResultSet 方法准备下一个要读取的结果集。它通常用于报告是否还存在下一个结果集,如果没有其他结果集或前进时出现错误,则报告 false。应该使用 Err 方法来区分这两种情况。
函数语法
func (s *Rows) NextResultSet() bool
示例
package main
import (
_ "./go-driver-xugusql"
"database/sql"
“log”
“fmt”
)
func main() {
db, _ := sql.Open("xugusql", "IP=192.168.78.130;"+
"DB=SYSTEM;User=SYSDBA;PWD=SYSDBA;"+
"Port=5138;AUTO_COMMIT=on;CHAR_SET=UTF8")
rows, err := db.Query(“select * from go_1th;select * from go_2th;”)
if err != nil {
log.Fatal(err)
}
var cols []string
cols, err = rows.Columns()
if err != nil {
log.Fatal(err)
}
pvals := make([]interface{}, len(cols))
for key, _ := range pvals {
dest := make([]byte, 216)
pvals[key] = &dest
}
set := 1
for true {
fmt.Printf("%dth Result Set:\n", set)
for rows.Next() {
err = rows.Scan(pvals...)
if err != nil {
log.Fatal(err)
log.Fatal(err)
} /* end if */
for _, v := range pvals {
fmt.Printf("%s\t", string(*(v.(*[]byte))))
}
fmt.Printf("\n")
} /* end for */
if !rows.NextResultSet() {
break
}
set++
} /* end for */
rows.Close()
db.Close()
}