go-scopes/storage/sql/sql.go

36 lines
629 B
Go

package sql
import (
"database/sql"
"git.sr.ht/~cco/go-scopes/logging/log"
)
type Cfg struct {
Driver, Connstr string
}
type Storage struct {
*sql.DB
}
func Open(cfg *Cfg) *Storage {
db, err := sql.Open(cfg.Driver, cfg.Connstr)
if err != nil {
log.Error(err).Msg("sql.Open")
return nil
}
return &Storage{db}
}
func (db *Storage) Exec(q string, args ...interface{}) (int64, error) {
info := "sql.Exec"
//log.Debug().Str("query", q).Msg(info)
res, err := db.DB.Exec(q, args...)
if err != nil {
log.Error(err).Str("query", q).Msg(info)
return 0, err
}
nrows, _ := res.RowsAffected()
return nrows, nil
}