added some database stuff for categories

This commit is contained in:
John Ladan 2012-03-22 16:02:26 -04:00
parent 415cadf47e
commit 1eccd20165
1 changed files with 51 additions and 1 deletions

View File

@ -2,6 +2,8 @@ import sqlite3
dbFile = 'sqLibrary.db'
bookTable = 'books'
bookRemovedTable='books_deleted'
bookCategoryTable='book_categories'
bookTableCreation = '''
CREATE TABLE IF NOT EXISTS books
@ -15,6 +17,15 @@ CREATE TABLE IF NOT EXISTS books_deleted
isbn, lccn, title, subtitle, authors, edition,
publisher, publish_year, publish_month, publish_location,
pages, pagination, weight, last_updated);
CREATE TABLE IF NOT EXISTS categories
(cat_id INTEGER PRIMARY KEY, category STRING);
CREATE TABLE IF NOT EXISTS book_categories
(id INTEGER, cat_id INTEGER);
CREATE TABLE IF NOT EXISTS book_deleted_categories
(id INTEGER, cat_id INTEGER);
'''
columns = ['id', 'isbn', 'lccn',
@ -46,6 +57,16 @@ BEGIN
FROM books
WHERE rowid = old.rowid;
END;
CREATE TRIGGER IF NOT EXISTS insert_book_category_time AFTER INSERT ON book_categories
BEGIN
UPDATE books SET last_updated = DATETIME('NOW') WHERE id = new.id;
END;
CREATE TRIGGER IF NOT EXISTS delete_book_category_time AFTER DELETE ON book_categories
BEGIN
UPDATE books SET last_updated = DATETIME('NOW') WHERE id = old.id;
END;
'''
def colify(s):
@ -98,6 +119,23 @@ def getBooks():
c.close()
return books
def getRemovedBooks():
conn = sqlite3.connect(dbFile)
c = conn.cursor()
query = "SELECT * FROM "+bookRemovedTable+";"
c.execute(query)
books = []
for b in c:
book = {}
i = 0
for k in columns:
if b[i]!=None:
book[k]=b[i]
i+=1
books.append(book)
c.close()
return books
def getBookByID(bookid):
conn = sqlite3.connect(dbFile)
c = conn.cursor()
@ -113,15 +151,27 @@ def getBookByID(bookid):
c.close()
return book
# removes book from catalogue
def removeBook(bookid):
conn = sqlite3.connect(dbFile)
c = conn.cursor()
query = "DELETE FROM " +bookTable+ " WHERE id = "+str(bookid)+";"
c.execute(query)
query = "DELETE FROM " +bookCategoryTable+ " WHERE id = "+str(bookid)+";"
c.execute(query)
conn.commit()
c.close()
# fully deletes book from removedBooks table
def deleteBook(bookid):
conn = sqlite3.connect(dbFile)
c = conn.cursor()
query = "DELETE FROM " +bookRemovedTable+ " WHERE id = "+str(bookid)+";"
c.execute(query)
conn.commit()
c.close()
def createBooksTable():
conn = sqlite3.connect(dbFile)
c = conn.cursor()