QueryRow
QueryRow 执行的查询预期最多返回一行。QueryRow 始终返回非 nil 值,错误将延迟到调用 Row 的 Scan 方法之前。如果查询未选择任何行,则在调用 Scan 时返回 ErrNoRows;否则,返回结果集中的第一行,并丢弃其余的行。
函数语法
func (s *Stmt) QueryRow (args ...interface{}) *Row
示例
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")
stmt, _ := db.Prepare("select c1,c2,c3 from go_1th;")
row := stmt.QueryRow()
pvals := make([]interface{}, 3)
for key, _ := range pvals {
dest := make([]byte, 216)
pvals[key] = &dest
}
err := row.Scan(pvals...)
if err != nil {
log.Fatal(err)
}
for _, v := range pvals {
fmt.Printf("%s\t", string(*(v.(*[]byte))))
}
fmt.Printf("\n")
db.Close()
}