github.com/aacfactory/fns-contrib/databases/sql@v1.2.84/dac/exist.go (about)

     1  package dac
     2  
     3  import (
     4  	"github.com/aacfactory/errors"
     5  	"github.com/aacfactory/fns-contrib/databases/sql"
     6  	"github.com/aacfactory/fns-contrib/databases/sql/dac/conditions"
     7  	"github.com/aacfactory/fns-contrib/databases/sql/dac/specifications"
     8  	"github.com/aacfactory/fns/context"
     9  )
    10  
    11  func Exist[T Table](ctx context.Context, cond conditions.Condition) (has bool, err error) {
    12  	_, query, arguments, buildErr := specifications.BuildExist[T](ctx, specifications.Condition{Condition: cond})
    13  	if buildErr != nil {
    14  		err = errors.Warning("sql: exist failed").WithCause(buildErr)
    15  		return
    16  	}
    17  
    18  	rows, queryErr := sql.Query(ctx, query, arguments...)
    19  	if queryErr != nil {
    20  		err = errors.Warning("sql: exist failed").WithCause(queryErr)
    21  		return
    22  	}
    23  	has = rows.Next()
    24  	_ = rows.Close()
    25  	return
    26  }