Skip to content

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()
}