X-Git-Url: http://jaekl.net/gitweb/?p=quanweb.git;a=blobdiff_plain;f=main%2Fdb.go;h=21c6818d8c5e6ad23998d30cd5ce10b35a881b94;hp=fa34828d5504562bea5837ff03917b05f8fe49a0;hb=23d77d1681abb3361f68c56bf0a78481ea479248;hpb=ca96e0b6276f6efe56b102ad8286a2534d6e264b diff --git a/main/db.go b/main/db.go index fa34828..21c6818 100644 --- a/main/db.go +++ b/main/db.go @@ -161,12 +161,33 @@ func queryBooksByIds(ids []int) []Book { return res } +func queryBookPathById(id int) (string) { + query := "SELECT b.path FROM Books b WHERE b.id=$1" + + ps, err := getDb().Prepare(query) + if nil != err { + report("Failed to Prepare query: " + query, err) + return "" + } + defer ps.Close() + + row := ps.QueryRow(id) + var path sql.NullString + err = row.Scan(&path) + if nil != err { + report(fmt.Sprintf("Failed to retrieve path for book id %v: ", id), err) + return "" + } + + return nsVal(path) +} + func queryIds(criteria []SearchTerm) []int { fmt.Println("queryIds():", criteria) query := "SELECT b.id FROM Books b" + " INNER JOIN Authors a ON a.id=b.author" + - " LEFT OUTER JOIN Series s ON s.id=b.series" + " LEFT OUTER JOIN Series s ON s.id=b.series" args := make([]interface{}, len(criteria)) @@ -190,6 +211,8 @@ func queryIds(criteria []SearchTerm) []int { args[i] = criterion.Text } + query += " ORDER BY b.path" + res := []int{} ps, err := getDb().Prepare(query) @@ -207,7 +230,7 @@ func queryIds(criteria []SearchTerm) []int { } defer rows.Close() - for rows.Next(); rows.Next(); { + for rows.Next() { var id int rows.Scan(&id) res = append(res, id)