+ def load_book(id)
+ sql = "SELECT author, cover, description, path, series, title, volume FROM Books WHERE id=$1;"
+ book = nil
+
+ begin
+ @conn.exec_params(sql, [id]) do |rs|
+ if 1 != rs.ntuples
+ raise 'Expected one row in Books for id ' + id + ', but found ' + rs.length + '.'
+ return nil
+ end
+ row = rs[0]
+
+ book = Book.new()
+ book.author = load_author(row['author'])
+ book.cover = load_cover(row['cover'])
+ book.description = row['description']
+ book.path = row['path']
+ book.series = row['series']
+ book.title = row['title']
+ book.volume = row['volume']
+ end
+ rescue Exception => e
+ puts sql + ": " + id
+ puts e.message
+ end
+
+ return book
+ end
+