func (s *source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Result, error) { var query string var res sql.Result var err error var start, end int64 start = time.Now().UnixNano() defer func() { end = time.Now().UnixNano() debugLog(query, args, err, start, end) }() if s.session == nil { return nil, db.ErrNotConnected } query = stmt.Compile(template) if s.tx != nil { res, err = s.tx.sqlTx.Exec(query, args...) } else { res, err = s.session.Exec(query, args...) } return res, err }
func (self *Source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql.Row, error) { var query string var row *sql.Row var err error var start, end int64 start = time.Now().UnixNano() defer func() { end = time.Now().UnixNano() debugLog(query, args, err, start, end) }() if self.session == nil { return nil, db.ErrNotConnected } query = stmt.Compile(template) if self.tx != nil { row = self.tx.QueryRow(query, args...) } else { row = self.session.QueryRow(query, args...) } return row, err }
func (self *source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql.Row, error) { var query string var row *sql.Row var err error var start, end int64 start = time.Now().UnixNano() defer func() { end = time.Now().UnixNano() debugLog(query, args, err, start, end) }() if self.session == nil { return nil, db.ErrNotConnected } query = stmt.Compile(template) l := len(args) for i := 0; i < l; i++ { query = strings.Replace(query, `?`, fmt.Sprintf(`$%d`, i+1), 1) } if self.tx != nil { row = self.tx.QueryRow(query, args...) } else { row = self.session.QueryRow(query, args...) } return row, err }
func (self *source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Result, error) { var query string var res sql.Result var err error var start, end int64 start = time.Now().UnixNano() defer func() { end = time.Now().UnixNano() debugLog(query, args, err, start, end) }() if self.session == nil { return nil, db.ErrNotConnected } query = stmt.Compile(template) l := len(args) for i := 0; i < l; i++ { query = strings.Replace(query, `?`, fmt.Sprintf(`$%d`, i+1), 1) } if self.tx != nil { res, err = self.tx.Exec(query, args...) } else { var tx *sql.Tx if tx, err = self.session.Begin(); err != nil { return nil, err } if res, err = tx.Exec(query, args...); err != nil { return nil, err } if err = tx.Commit(); err != nil { return nil, err } } return res, err }