@@ -134,3 +134,32 @@ func (a *SqlAgent) SelectContext(ctx context.Context, builder sq.Sqlizer, dest i
134134 return a .db .SelectContext (ctx , dest , sqlStr , args ... )
135135}
136136
137+ // TxExecContext exec sql built by sq.InsertBuilder/sq.UpdateBuilder/sq.DeleteBuilder and return result.
138+ // builder: sq.InsertBuilder, sq.UpdateBuilder or sq.DeleteBuilder
139+ func TxExecContext (ctx context.Context , tx * sqlx.Tx , builder sq.Sqlizer ) (sql.Result , error ) {
140+ sqlStr , args , err := builder .ToSql ()
141+ if err != nil {
142+ return nil , err
143+ }
144+ return tx .ExecContext (ctx , sqlStr , args ... )
145+ }
146+
147+ // TxGetContext get one record by sql built by sq.SelectBuilder and scan to dest.
148+ // builder: sq.SelectBuilder
149+ func TxGetContext (ctx context.Context , tx * sqlx.Tx , builder sq.Sqlizer , dest interface {}) error {
150+ sqlStr , args , err := builder .ToSql ()
151+ if err != nil {
152+ return err
153+ }
154+ return tx .GetContext (ctx , dest , sqlStr , args ... )
155+ }
156+
157+ // TxSelectContext get one or multi records by sql built by sq.SelectBuilder and scan to dest.
158+ // builder: sq.SelectBuilder
159+ func TxSelectContext (ctx context.Context , tx * sqlx.Tx , builder sq.Sqlizer , dest interface {}) error {
160+ sqlStr , args , err := builder .ToSql ()
161+ if err != nil {
162+ return err
163+ }
164+ return tx .SelectContext (ctx , dest , sqlStr , args ... )
165+ }
0 commit comments