go - Как использовать gorp select для пустого интерфейса

Привет, я использую gorp и хочу использовать запрос выбора для любой таблицы, фактически не зная ее схемы, для которой я использую запрос

db, err := sql.Open("mysql", "root:1234@tcp(localhost:3306)/information_schema")
checkErr(err, "sql.Open failed")
dbmap := &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{}}
var data []interface{}
_, err = dbmap.Select(&data, "select * from collations")
checkErr(err, "select query failed")
fmt.Println(data)

}

Однако это приводит к ошибке, потому что я могу передать структуру только в качестве первого параметра для выбора

это возвращает ошибку

Ошибка выбора запроса gorp: для выбора в срезе без структуры требуется 1 столбец, получено 6

предложите мне некоторые исправления или любую другую альтернативу, чтобы я мог использовать запрос выбора для любого имени таблицы, динамически выбранного пользователем


person Abhishek Soni    schedule 19.02.2016    source источник


Ответы (1)


Если вы не знаете схему, не используйте GORP... Почему? поскольку GORPs является картографом, ему нужны поля source и target, чтобы знать, как обрабатывать данные, если вы не передаете target тогда GORP действительно не знает, что делать.

Однако вы можете сделать это с помощью стандартного пакета SQL. См. этот ответ для получения дополнительной информации: sql: scan строки с неизвестным количеством столбцов (выберите * из ...)

person Cedmundo    schedule 19.02.2016