36 lines
629 B
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
|
|
}
|