s.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * Copyright (c) 2000-2018, 达梦数据库有限公司.
  3. * All rights reserved.
  4. */
  5. package dm
  6. type DmResult struct {
  7. filterable
  8. dmStmt *DmStatement
  9. affectedRows int64
  10. insertId int64
  11. }
  12. func newDmResult(bs *DmStatement, execInfo *execRetInfo) *DmResult {
  13. result := DmResult{}
  14. result.resetFilterable(&bs.filterable)
  15. result.dmStmt = bs
  16. result.affectedRows = execInfo.updateCount
  17. result.insertId = execInfo.lastInsertId
  18. result.idGenerator = dmResultIDGenerator
  19. return &result
  20. }
  21. /*************************************************************
  22. ** PUBLIC METHODS AND FUNCTIONS
  23. *************************************************************/
  24. func (r *DmResult) LastInsertId() (int64, error) {
  25. //if err := r.dmStmt.checkClosed(); err != nil {
  26. // return -1, err
  27. //}
  28. if len(r.filterChain.filters) == 0 {
  29. return r.lastInsertId()
  30. }
  31. return r.filterChain.reset().DmResultLastInsertId(r)
  32. }
  33. func (r *DmResult) RowsAffected() (int64, error) {
  34. //if err := r.dmStmt.checkClosed(); err != nil {
  35. // return -1, err
  36. //}
  37. if len(r.filterChain.filters) == 0 {
  38. return r.rowsAffected()
  39. }
  40. return r.filterChain.reset().DmResultRowsAffected(r)
  41. }
  42. func (result *DmResult) lastInsertId() (int64, error) {
  43. return result.insertId, nil
  44. }
  45. func (result *DmResult) rowsAffected() (int64, error) {
  46. return result.affectedRows, nil
  47. }