func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driver.Rows, error) {
	if atomic.LoadInt32(&s.closed) != 0 || s.c == nil {
		return nil, driver.ErrBadConn
	}
	return s.c.QueryContext(ctx, s.pattern, args)
}
QueryContext implements the driver.StmtQueryContext.QueryContext.
package client
import (
	"context"
	"database/sql/driver"
	"sync/atomic"
)
type stmt struct {
	c       *conn
	closed  int32
	pattern string
}
func newStmt(c *conn, query string) (s *stmt) {
	s = &stmt{c: c, pattern: query}
	return
}
func (s *stmt) Query(args []driver.Value) (driver.Rows, error) {
	return s.QueryContext(context.Background(), convertOldArgs(args))
}
func (s *stmt) Exec(args []driver.Value) (driver.Result, error) {
	return s.ExecContext(context.Background(), convertOldArgs(args))
}