Factorize book query
This commit is contained in:
parent
8a88942650
commit
efbe2be19c
34
db.c
34
db.c
@ -80,6 +80,20 @@ db_book_adv_free(BookAdv *p)
|
|||||||
free(p);
|
free(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
db_book_fill(Book *book, struct ksqlstmt *stmt)
|
||||||
|
{
|
||||||
|
book->id = ksql_stmt_int(stmt, 0);
|
||||||
|
book->title = kstrdup(ksql_stmt_str(stmt, 1));
|
||||||
|
if ( ksql_stmt_isnull(stmt, 4) ) {
|
||||||
|
book->s.id = -1;
|
||||||
|
} else {
|
||||||
|
book->s_idx = ksql_stmt_double(stmt, 2);
|
||||||
|
book->s.name = kstrdup(ksql_stmt_str(stmt, 3));
|
||||||
|
book->s.id = ksql_stmt_int(stmt, 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
db_books_load(struct kreq *r, BookAdv **books, int limit)
|
db_books_load(struct kreq *r, BookAdv **books, int limit)
|
||||||
{
|
{
|
||||||
@ -94,15 +108,7 @@ db_books_load(struct kreq *r, BookAdv **books, int limit)
|
|||||||
ksql_bind_int(stmt, 0, limit);
|
ksql_bind_int(stmt, 0, limit);
|
||||||
while (KSQL_ROW == ksql_stmt_step(stmt)) {
|
while (KSQL_ROW == ksql_stmt_step(stmt)) {
|
||||||
books[i] = kcalloc(1, sizeof(BookAdv));
|
books[i] = kcalloc(1, sizeof(BookAdv));
|
||||||
books[i]->b.id = ksql_stmt_int(stmt, 0);
|
db_book_fill(&books[i]->b,stmt);
|
||||||
books[i]->b.title = kstrdup(ksql_stmt_str(stmt, 1));
|
|
||||||
if ( ksql_stmt_isnull(stmt, 4) ) {
|
|
||||||
books[i]->b.s.id = -1;
|
|
||||||
} else {
|
|
||||||
books[i]->b.s_idx = ksql_stmt_double(stmt, 2);
|
|
||||||
books[i]->b.s.name = kstrdup(ksql_stmt_str(stmt, 3));
|
|
||||||
books[i]->b.s.id = ksql_stmt_int(stmt, 4);
|
|
||||||
}
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
ksql_stmt_free(stmt);
|
ksql_stmt_free(stmt);
|
||||||
@ -124,15 +130,7 @@ db_book_load(struct kreq *r, int64_t id)
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
book = kcalloc(1, sizeof(Book));
|
book = kcalloc(1, sizeof(Book));
|
||||||
book->id = ksql_stmt_int(stmt, 0);
|
db_book_fill(book, stmt);
|
||||||
book->title = kstrdup(ksql_stmt_str(stmt, 1));
|
|
||||||
if ( ksql_stmt_isnull(stmt, 4) ) {
|
|
||||||
book->s.id = -1;
|
|
||||||
} else {
|
|
||||||
book->s_idx = ksql_stmt_double(stmt, 2);
|
|
||||||
book->s.name = kstrdup(ksql_stmt_str(stmt, 3));
|
|
||||||
book->s.id = ksql_stmt_int(stmt, 4);
|
|
||||||
}
|
|
||||||
ksql_stmt_free(stmt);
|
ksql_stmt_free(stmt);
|
||||||
return book;
|
return book;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user