test.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package postgres
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/jackc/pgx/v4"
  6. )
  7. type Test struct {
  8. base
  9. }
  10. func (t Test) UserAdd(name string) {
  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 err != nil {
  18. fmt.Printf("QueryFunc error: %v", err)
  19. }
  20. }
  21. type UserListInfo struct {
  22. Id int
  23. Name string
  24. }
  25. func (t Test) UserList1() (rs []interface{}, err error) {
  26. //var id int32
  27. //var name string
  28. //var ct time.Time
  29. var one interface{}
  30. var rs_ struct {
  31. Rs []interface{}
  32. }
  33. //var a interface{}
  34. sql := `select id,name from func_userlist_query();`
  35. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{}, []interface{}{&one}, func(rows pgx.QueryFuncRow) error {
  36. rs_.Rs = append(rs_.Rs, one)
  37. return nil
  38. })
  39. if err != nil {
  40. fmt.Printf("QueryFunc error: %v", err)
  41. }
  42. data, err := json.Marshal(rs_)
  43. println(string(data))
  44. return
  45. }
  46. func (t Test) UserList2() (rs []interface{}, err error) {
  47. //var id int32
  48. //var name string
  49. //var ct time.Time
  50. usone := UserListInfo{}
  51. sql := `select id,name from func_userlist_query();`
  52. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{}, []interface{}{&usone.Id, &usone.Name}, func(pgx.QueryFuncRow) error {
  53. fmt.Printf("%v\n", usone)
  54. rs = append(rs, usone)
  55. return nil
  56. })
  57. if err != nil {
  58. fmt.Printf("QueryFunc error: %v", err)
  59. }
  60. return
  61. }
  62. func (t Test) UserList() (rs []interface{}, err error) {
  63. var id int
  64. var name string
  65. //var ct time.Time
  66. //usone := UserListInfo{}
  67. sql := `select id,name from func_userlist_query();`
  68. _, err = t.writeDB().QueryFunc(t.ctx(), sql, []interface{}{}, []interface{}{&id, &name}, func(pgx.QueryFuncRow) error {
  69. usone := UserListInfo{id, name}
  70. fmt.Printf("%v\n", usone)
  71. rs = append(rs, usone)
  72. return nil
  73. })
  74. if err != nil {
  75. fmt.Printf("QueryFunc error: %v", err)
  76. }
  77. return
  78. }