(GoLANG) *sql .DB Сканирование строк в указатель массива строк - PullRequest
0 голосов
/ 19 марта 2020

Я довольно новичок в обработке sql баз данных через GO. У меня есть экземпляр, где я сканирую строки из моего соединения с БД в кусочки вложенной структуры в экземпляре. Но, похоже, не могу правильно это сделать. Существуют ли какие-либо циклические приемы или ссылки, которые могут быть полезны в Golang. Я предоставил пример кода и могу предоставить что-нибудь еще. Пул соединений установлен, и только когда я go для сканирования строк, моя программа вылетает. Поэтому мой вопрос: если есть несколько строк (4 строки и 2 столбца), которые я хочу вставить в объекты (столбцы) (тигр и лев), как бы il oop закончился и сделал бы это с * 1002? * rows.Scan ??

rows, err := db.Query(`Query`)

if err != nil {
		//error
		return 
	} else {
		// logging
	}
}

for rows.Next() {
		ref := &structurre{}

		err := rows.Scan(&ref.number, &ref.animal[0].tiger, &ref.animal[o].lion)
		if err != nil {
			logEntry.Info(err)
			return details, err

		}
		details = append(details, ref)
}
  
type structure struct {
 number string
 animal []*zoo
}

type zoo struct {
  tiger string
  lion string
}

1 Ответ

0 голосов
/ 20 марта 2020

Может быть, вы ищете что-то вроде этого:

    type zoo struct {
    tiger string
    lion  string
}

type structure struct {
    number string
    animal []*zoo
}

var ref []structure

rows, err := db.QueryContext(ctx, `query`, `args...`)

if err != nil {
    //error
    return err
}
// logging

for rows.Next() {
    var scans structure
    err = rows.Scan(&scans.number, &scans.animal[0].tiger, &scans.animal[0].lion)
    if err != nil {
        fmt.Println(err)
        if err == sql.ErrNoRows {
            fmt.Println("No Rows found")
        }
        return err

    }
    ref = append(ref, scans)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...