Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type company struct {
- Id int
- Name string
- }
- comp.InitModel(newDbConnection(), &comp)
- //m.caller = pointer to the ptr to comp (struct)
- callerV := reflect.ValueOf(m.caller)
- CallerField := callerV.Elem()
- var values []interface{}
- for _, e := range m.columns {
- values = append(values, CallerField.FieldByName(e.name).Addr().Interface())
- }
- err := r.Scan(values...)
- if err != nil {
- return err
- }
- var companies []company
- comp.InitModel(newDbConnection(), &comp)
- comp.FindAll(&companies) //in this is the db query and scan
- fmt.Println(companies) //here should be the result
- func (m *Model) FindAll(test []interface{}, c *Condition) error {
- //get the sql statement from the struct
- stmt := PrepairStmt(m, c)
- rows, err := m.db.Query(stmt.selectParse(), c.arguments...)
- if err != nil {
- return err
- }
- defer rows.Close()
- callerV := reflect.ValueOf(m.caller)
- CallerField := callerV.Elem()
- for rows.Next() {
- var values []interface{}
- for _, e := range m.columns {
- values = append(values, CallerField.FieldByName(e.name).Addr().Interface())
- }
- err = rows.Scan(values...)
- if err != nil {
- return err
- }
- valuePtr := reflect.New(reflect.TypeOf(test).Elem())
- test = reflect.Append(test,reflect.ValueOf(values))
- }
- return nil
- }
Add Comment
Please, Sign In to add comment