diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2022-05-30 00:54:47 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2022-05-30 00:54:47 +0400 |
| commit | 30cac6776ffe530892f27c87f7fc26db0f08fd8b (patch) | |
| tree | 47358897c9db1706f289433f979ba797a514cf68 /interface/database.go | |
| parent | e296b1dbb2319b26282a1b6fac034ce1048714b9 (diff) | |
Отображение связи один ко многим
Diffstat (limited to 'interface/database.go')
| -rw-r--r-- | interface/database.go | 41 |
1 files changed, 22 insertions, 19 deletions
diff --git a/interface/database.go b/interface/database.go index 446b015..4ddd2eb 100644 --- a/interface/database.go +++ b/interface/database.go @@ -29,15 +29,6 @@ func (conn *SQLConnection) init() error { return err } -type Box struct { - id int - orderId int - warehouseId int - wrappingId int - volume float32 - weight float32 -} - func (conn *SQLConnection) getTables() ([]string, error) { result, err := conn.db.Query( `SELECT TABLE_CATALOG + '.' + TABLE_SCHEMA + '.' + TABLE_NAME as TABLE_NAME @@ -100,17 +91,29 @@ func (conn *SQLConnection) getTable(table string) ([][]string, error) { _ = result.Scan(dest...) msg = append(msg, boxes) } - - //for result.Next() { - // var box Box - // err = result.Scan( - // &box.id, &box.orderId, - // &box.warehouseId, - // &box.wrappingId, - // &box.volume, &box.weight) - // msg = append(msg, box) - //} _ = result.Close() return msg, err } + +func (conn *SQLConnection) getOneToManyTable(manyTable string, manyColumn string, oneValue string) ([][]string, error) { + result, err := conn.db.Query(fmt.Sprintf( + "SELECT * FROM %s WHERE %s=%s", manyTable, manyColumn, oneValue)) + if err != nil { + return nil, err + } + + var msg [][]string + cols, _ := result.Columns() + for result.Next() { + boxes := make([]string, len(cols)) + dest := make([]interface{}, len(cols)) + for i, _ := range dest { + dest[i] = &boxes[i] + } + _ = result.Scan(dest...) + msg = append(msg, boxes) + } + + return msg, nil +} |