SanctuaryCommander/utilities/database/sqlite.py

29 lines
800 B
Python

from .database import Database
import sqlite3
class SQLite(Database):
def __init__(self, db_name: str):
super(Database, self).__init__()
self.db = sqlite3.connect(db_name)
self.db.autocommit = True
def close(self):
self.db.close()
def query(self, query: str, parameters: list=None) -> tuple[int, list[tuple]]:
if parameters is None:
cursor = self.db.execute(query)
else:
cursor = self.db.execute(query, parameters)
if query.casefold().startswith("SELECT".casefold()):
rows = list(cursor)
return (len(rows), rows)
elif query.casefold().startswith("INSERT".casefold()):
return (cursor.lastrowid, None)
else:
return (cursor.rowcount, None)