diff --git a/dbtool/dbtool.go b/dbtool/dbtool.go index 9adc5e4..f6b5b63 100644 --- a/dbtool/dbtool.go +++ b/dbtool/dbtool.go @@ -10,16 +10,19 @@ import ( ) // ScanToStruct - scan query rows to struct -func ScanToStruct(rows *sql.Rows, ss interface{}) (err error) { +func ScanToStruct(rows *sql.Rows, ss interface{}) (ok bool, err error) { data, err := ResultToMap(rows) if err != nil { - return err + return false, err } if len(data) == 0 { - return nil + return false, nil } err = MapToStruct(data[0], ss) - return nil + if err != nil { + return false, err + } + return true, nil } func ScanToStructAll(rows *sql.Rows, ss interface{}) error { diff --git a/main.go b/main.go index 2a15044..bb0d8d7 100644 --- a/main.go +++ b/main.go @@ -17,22 +17,19 @@ type FileT struct { } func main() { - connStr := "postgres://postgres@localhost:5432/mystorage?sslmode=disable" + connStr := "postgres://postgres@localhost:5432/gallery?sslmode=disable" db, err := sql.Open("postgres", connStr) handleError(err) defer db.Close() - rows, err := db.Query(`select id, name from "storage"."files" where "tmp" = $1 and "trash" = $2 limit 2`, false, false) + result, err := db.Query(`insert into "public"."account" ("account", "password", "nick", "email") values ($1, $2, $3, $4) returning *`, "aaaaa", "bbbb", "cccc", "dddd") handleError(err) - defer rows.Close() + defer result.Close() - // mm, err := dbtool.ResultToMap(rows) - // handleError(err) + dd, err := dbtool.ResultToMap(result) + handleError(err) - var files []FileT - err = dbtool.ScanToStructAll(rows, &files) - - fmt.Println(files) + fmt.Println(dd) // var id, name string // for rows.Next() {