driver/driver.go
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (r driver.Result, err error) {
	if c.session.IsBad() {
		return nil, driver.ErrBadConn
	}

	if len(args) != 0 {
		return nil, driver.ErrSkip //fast path not possible (prepare needed)
	}

	sqltrace.Traceln(query)

	done := make(chan struct{})
	go func() {
		r, err = c.session.ExecDirect(query)
		close(done)
	}()

	select {
	case <-ctx.Done():
		return nil, ctx.Err()
	case <-done:
		return r, err
	}
}
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (r driver.Result, err error) {
	if c.session.IsBad() {
		return nil, driver.ErrBadConn
	}

	if len(args) != 0 {
		return nil, driver.ErrSkip //fast path not possible (prepare needed)
	}

	sqltrace.Traceln(query)

	done := make(chan struct{})
	go func() {
		r, err = c.session.ExecDirect(query)
		close(done)
	}()

	select {
	case <-ctx.Done():
		return nil, ctx.Err()
	case <-done:
		return r, err
	}
}
func ( c * conn ) ExecContext ( ctx context . Context , query string , args [ ] driver . NamedValue ) ( r driver . Result , err error ) { if c . session . IsBad ( ) { return nil , driver . ErrBadConn } if len ( args ) != 0 { return nil , driver . ErrSkip //fast path not possible (prepare needed) } sqltrace . Traceln ( query ) done := make ( chan struct { } ) go func ( ) { r , err = c . session . ExecDirect ( query ) close ( done ) } ( ) select { case <- ctx . Done ( ) : return nil , ctx . Err ( ) case <- done : return r , err } }
// ExecContext implements the database/sql/driver/ExecerContext interface.
ExecContext implements the database / sql / driver / ExecerContext interface .