test.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package postgres
  2. import (
  3. "fmt"
  4. "gframe/errors"
  5. "github.com/jackc/pgx/v4"
  6. )
  7. type Test struct {
  8. base
  9. }
  10. func (t Test) UserAdd2(name string) (err error) {
  11. stCode := -999
  12. sql := `select fn_user_add2($1,$2);`
  13. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{name, stCode}, []interface{}{&stCode}, func(pgx.QueryFuncRow) error {
  14. //fmt.Printf("%v", stCode)
  15. return nil
  16. })
  17. if stCode < 0 {
  18. err = errors.NewServiceErr(errors.CodeUserErr, "用户添加错误:")
  19. }
  20. if err != nil {
  21. fmt.Printf("QueryFunc error: %v", err)
  22. }
  23. return
  24. }
  25. func (t Test) UserAdd1(paramStr string) (err error) {
  26. stCode := -999
  27. sql := `select fn_user_add($1,$2);`
  28. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{paramStr, stCode}, []interface{}{&stCode}, func(pgx.QueryFuncRow) error {
  29. //fmt.Printf("%v", stCode)
  30. return nil
  31. })
  32. if stCode < 0 {
  33. err = errors.NewServiceErr(errors.CodeUserErr, "用户添加错误:")
  34. }
  35. if err != nil {
  36. fmt.Printf("QueryFunc error: %v", err)
  37. }
  38. return
  39. }
  40. type UserListInfo struct {
  41. Id int
  42. Name string
  43. }
  44. func (t Test) UserList2() (rs []interface{}, err error) {
  45. //var id int32
  46. //var name string
  47. //var ct time.Time
  48. usone := UserListInfo{}
  49. sql := `select id,name from func_userlist_query();`
  50. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{}, []interface{}{&usone.Id, &usone.Name}, func(rows pgx.QueryFuncRow) error {
  51. fmt.Printf("%v\n", usone)
  52. rs = append(rs, usone)
  53. return nil
  54. })
  55. if err != nil {
  56. fmt.Printf("QueryFunc error: %v", err)
  57. }
  58. return
  59. }
  60. func (t Test) UserList() (rs []interface{}, err error) {
  61. sql := `select * from func_userlist_query();`
  62. rows, err := t.writeDB().Query(t.ctx(), sql)
  63. if err != nil {
  64. fmt.Printf("QueryFunc error: %v", err)
  65. }
  66. rs = PgSqlRowsToInerface(rows)
  67. return
  68. }