Container.Get(): clean-up, improvements

This commit is contained in:
Helmut Merz 2024-04-11 21:41:45 +02:00
parent 9081f93548
commit 4df0a39bf0

View file

@ -61,10 +61,8 @@ func (tr *Track) ScanP(rows *sql.Rows) error {
var hv string var hv string
d = append(d, &hv) d = append(d, &hv)
} }
var ts string var ts, rd string
d = append(d, &ts) d = append(d, &ts, &rd, &tr.trackId)
var rd string
d = append(d, &rd)
err := rows.Scan(d...) err := rows.Scan(d...)
for i, k := range tr.container.HeadFields { for i, k := range tr.container.HeadFields {
tr.Head[k] = *d[i].(*string) tr.Head[k] = *d[i].(*string)
@ -74,7 +72,6 @@ func (tr *Track) ScanP(rows *sql.Rows) error {
if err != nil { if err != nil {
log.Error(err).Msg("storage.tracking.ScanP") log.Error(err).Msg("storage.tracking.ScanP")
} }
fmt.Printf("%+v, %v, %v\n", tr.Head, tr.TimeStamp, tr.Data)
return err return err
} }
@ -98,27 +95,22 @@ func Tracks(db *sql.Storage) *Container {
func (cont *Container) Get(id lib.Ident) *Track { func (cont *Container) Get(id lib.Ident) *Track {
db := cont.Storage db := cont.Storage
var trs []*Track var tr *Track
processTracks := func(r *sql.Rows) error { proc := func(r *sql.Rows) error {
tr := cont.ItemFactory(cont) tr := cont.ItemFactory(cont)
err := tr.ScanP(r) return tr.ScanP(r)
trs = append(trs, tr)
return err
} }
qu := lib.Map{ qu := lib.Map{
"schema": db.Schema, "schema": db.Schema,
"tablename": cont.TableName, "tablename": cont.TableName,
"scols": append(cont.HeadFields, "timestamp", "data"), "scols": append(cont.HeadFields, "timestamp", "data", "trackid"),
"qucols": lib.StrSlice{"trackid"}, "qucols": lib.StrSlice{"trackid"},
} }
sql := storage.BuildSql(SqlSelect, qu) sql := storage.BuildSql(SqlSelect, qu)
print(sql) print(sql)
//tr := cont.ItemFactory(cont) db.Query(proc, sql, id)
db.Query(processTracks, sql, id) fmt.Printf("%+v\n", *tr)
if len(trs) > 0 { return tr
return trs[0]
}
return nil
} }
func (cont *Container) Query(headValues lib.StrSlice) *Track { func (cont *Container) Query(headValues lib.StrSlice) *Track {