gf icon indicating copy to clipboard operation
gf copied to clipboard

database/gdb: Inconsistency in the err returned when no data is queried during the query

Open wln32 opened this issue 1 year ago • 0 comments

Go version

1.22

GoFrame version

2.7.0

Can this bug be reproduced with the latest release?

Option Yes

What did you do?

1.当Scan的参数是指针的时候,也就是*Result,没有查询到数据,返回sql.ErrNoRows

var results Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)
  1. 当Scan的参数是二级指针的时候,也就是**Result,没有查询到数据,没有返回sql.ErrNoRows
var results *Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)

3.当Scan的参数是*[]Result或者*[]*Result的时候,没有查询到数据,没有返回sql.ErrNoRows

var results []*Result
q := g.DB("default").Model("results").Where("1!=1")
err := q.Scan(&results)
fmt.Println("err=", err)

建议统一返回错误,或者不返回错误比较好点

What did you see happen?

err= sql: no rows in result set err= nil err= nil

What did you expect to see?

err= nil err= nil err= nil

或者 err= sql: no rows in result set err= sql: no rows in result set err= sql: no rows in result set

wln32 avatar Apr 29 '24 05:04 wln32