// +build go1.10 package mssql import ( "context" "database/sql/driver" "errors" ) var _ driver.Connector = &Connector{} var _ driver.SessionResetter = &Conn{} func (c *Conn) ResetSession(ctx context.Context) error { if !c.connectionGood { return driver.ErrBadConn } c.resetSession = true if c.connector == nil || len(c.connector.SessionInitSQL) == 0 { return nil } s, err := c.prepareContext(ctx, c.connector.SessionInitSQL) if err != nil { return driver.ErrBadConn } _, err = s.exec(ctx, nil) if err != nil { return driver.ErrBadConn } return nil } // Connect to the server and return a TDS connection. func (c *Connector) Connect(ctx context.Context) (driver.Conn, error) { conn, err := c.driver.connect(ctx, c, c.params) if err == nil { err = conn.ResetSession(ctx) } return conn, err } // Driver underlying the Connector. func (c *Connector) Driver() driver.Driver { return c.driver } func (r *Result) LastInsertId() (int64, error) { return -1, errors.New("LastInsertId is not supported. Please use the OUTPUT clause or add `select ID = convert(bigint, SCOPE_IDENTITY())` to the end of your query.") }