| 123456789101112131415161718192021222324252627282930313233343536373839404142 | // Copyright 2016 The Xorm Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package xormimport "reflect"// IterFunc only use by Iteratetype IterFunc func(idx int, bean interface{}) error// Rows return sql.Rows compatible Rows obj, as a forward Iterator object for iterating record by record, bean's non-empty fields// are conditions.func (session *Session) Rows(bean interface{}) (*Rows, error) {	return newRows(session, bean)}// Iterate record by record handle records from table, condiBeans's non-empty fields// are conditions. beans could be []Struct, []*Struct, map[int64]Struct// map[int64]*Structfunc (session *Session) Iterate(bean interface{}, fun IterFunc) error {	rows, err := session.Rows(bean)	if err != nil {		return err	}	defer rows.Close()	i := 0	for rows.Next() {		b := reflect.New(rows.beanType).Interface()		err = rows.Scan(b)		if err != nil {			return err		}		err = fun(i, b)		if err != nil {			return err		}		i++	}	return err}
 |