code: func (s *Session) Exec(id uint64, prmFieldSet *ParameterFieldSet, args []driver.NamedValue) (driver.Result, error) {
  	s.mu.Lock()
  	defer s.mu.Unlock()
  
  	s.statementID.id = &id
  	if err := s.writeRequest(mtExecute, !s.conn.inTx, s.statementID, newInputParameters(prmFieldSet.inputFields(), args)); err != nil {
  		return nil, err
  	}
  
  	if err := s.readReply(nil); err != nil {
  		return nil, err
  	}
  
  	var result driver.Result
  	if s.sh.functionCode == fcDDL {
  		result = driver.ResultNoRows
  	} else {
  		result = driver.RowsAffected(s.rowsAffected.total())
  	}
  
  	if err := s.writeLobStream(prmFieldSet, nil, args); err != nil {
  		return nil, err
  	}
  
  	return result, nil
  }
docs: // Exec executes a sql statement.