summaryrefslogtreecommitdiff
path: root/interface/database.go
diff options
context:
space:
mode:
authorAndrew Guschin <guschin.drew@gmail.com>2022-05-30 00:54:47 +0400
committerAndrew Guschin <guschin.drew@gmail.com>2022-05-30 00:54:47 +0400
commit30cac6776ffe530892f27c87f7fc26db0f08fd8b (patch)
tree47358897c9db1706f289433f979ba797a514cf68 /interface/database.go
parente296b1dbb2319b26282a1b6fac034ce1048714b9 (diff)
Отображение связи один ко многим
Diffstat (limited to 'interface/database.go')
-rw-r--r--interface/database.go41
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
+}