package postgres import ( "fmt" "gframe/errors" "github.com/jackc/pgx/v4" ) type Test struct { base } func (t Test) UserAdd2(name string) (err error) { stCode := -999 sql := `select fn_user_add2($1,$2);` _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{name, stCode}, []interface{}{&stCode}, func(pgx.QueryFuncRow) error { //fmt.Printf("%v", stCode) return nil }) if stCode < 0 { err = errors.NewServiceErr(errors.CodeUserErr, "用户添加错误:") } if err != nil { fmt.Printf("QueryFunc error: %v", err) } return } func (t Test) UserAdd1(paramStr string) (err error) { stCode := -999 sql := `select fn_user_add($1,$2);` _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{paramStr, stCode}, []interface{}{&stCode}, func(pgx.QueryFuncRow) error { //fmt.Printf("%v", stCode) return nil }) if stCode < 0 { err = errors.NewServiceErr(errors.CodeUserErr, "用户添加错误:") } if err != nil { fmt.Printf("QueryFunc error: %v", err) } return } type UserListInfo struct { Id int Name string } func (t Test) UserList2() (rs []interface{}, err error) { //var id int32 //var name string //var ct time.Time usone := UserListInfo{} sql := `select id,name from func_userlist_query();` _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{}, []interface{}{&usone.Id, &usone.Name}, func(rows pgx.QueryFuncRow) error { fmt.Printf("%v\n", usone) rs = append(rs, usone) return nil }) if err != nil { fmt.Printf("QueryFunc error: %v", err) } return } func (t Test) UserList() (rs []interface{}, err error) { sql := `select * from func_userlist_query();` rows, err := t.writeDB().Query(t.ctx(), sql) if err != nil { fmt.Printf("QueryFunc error: %v", err) } rs = PgSqlRowsToInerface(rows) return }