def configure_database(self, database_info, db_connection): db = Database() username = db_connection["username"] password = db_connection["password"] dbname = database_info["db_name"] db.connect_db(username=username, password=password) # creating the database if not exist! query = "CREATE DATABASE IF NOT EXISTS " + dbname db.exec_query(query) db.close_db() # initializing the connection data into Database class! self.__database = Database(username=username, password=password, dbname=dbname) # creating the tables if not exists! self.__database.connect_db() for t in database_info["tables"]: # checking if table exists or not! cond = "table_schema='%s' and table_name='%s'" % (dbname, t["table_name"]) result = self.__database.get_rows("information_schema.tables", cond) if len(result) == 0: self.__database.create_table(t["table_name"], t["table_struct"]) self.__database.close_db()
def updateClient(self): """Atualiza as informações de um Cliente.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o update cursor.execute("UPDATE Client SET name = '" + str(self.name) + "', docno = " + str(self.docno) + "', phone = " + str(self.phone) + "', cellphone = " + str(self.cellphone) + "', address = " + str(self.address) + "', neighborhood = " + str(self.neighborhood) + "', city = " + str(self.city) + "', state = " + str(self.state) + " WHERE code = " + str(self.code) + " ") #Gravo as alterações database.conn.commit() #Fecho o cursor cursor.close() #Retorno OK return True except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def insertClient(self): """Insere um novo Cliente na base de dados.""" #Se o produto foi criado sem um código, providencio um novo código. if self.code == None or self.code <= 0: self.code = nextCode() #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo a inserção cursor.execute( "INSERT INTO Client (code, name, docno, phone, cellphone, address, neighborhood, city, state) VALUES (" + str(self.code) + ", '" + str(self.name) + "', " + str(docno) + ", " + str(phone) + ", " + str(cellphone) + ", " + str(address) + ", " + str(neighborhood) + ", " + str(city) + ", " + str(state) + ")") #Gravo as alterações database.conn.commit() #Fecho o cursor cursor.close() #Retorno OK return str(True) except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return str(False)
def nextCode(self): """Verifico qual é o próximo código de Cliente disponível.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT MAX(code) FROM Client") #Guardo o número de registros retornado count = cursor.fetchone()[0] #Fecho o cursor cursor.close() #Retorno a lista de objetos return count + 1 except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return 0
def isNew(self): """Verifica se o Cliente é novo.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT COUNT(*) FROM Client WHERE code = " + str(self.code) + " ") #Guardo o número de registros retornado count = cursor.fetchone()[0] #Fecho o cursor cursor.close() #Retorno a lista de objetos return count <= 0 except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def selectAllClients(self): """Recupera todos os Clientes cadastrados no sistema""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute( "SELECT code, name, docno, phone, cellphone, address, neighborhood, city, state FROM Client" ) #Crio uma lista para armazenar os resultados clients = [] #Preencho os dados do objeto com as informações retornadas for client in cursor: prod = Client(client[0], client[1], client[2], client[3], client[4], client[5], client[6], client[7], client[8]) products.append(prod) #Fecho o cursor cursor.close() #Retorno a lista de objetos return clients except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def deleteClient(self): """Exclui um cliente da base de dados.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo a exclusão cursor.execute("DELETE FROM Client WHERE code = " + str(self.code) + " ") #Gravo as alterações database.conn.commit() #Fecho o cursor cursor.close() #Retorno OK return True except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def updateCategory(self): """Atualiza as informações de uma categoria.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o update cursor.execute("UPDATE Category SET name = '" + str(self.name) + "' WHERE code = " + str(self.code) + " ") #Gravo as alterações database.conn.commit() #Fecho o cursor cursor.close() #Retorno OK return True except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def insertCategory(self): """Insere uma nova categoria na base de dados.""" #Se a categoria foi criada sem um código, providencio um novo código. if self.code == None or self.code <= 0: self.code = nextCode() #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo a inserção cursor.execute("INSERT INTO Category (code, name) VALUES (" + str(self.code) + ", '" + str(self.name) + "')") #Gravo as alterações database.conn.commit() #Fecho o cursor cursor.close() #Retorno OK return str(True) except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return str(False)
def selectAllCategories(self): """Recupera todas as categorias cadastradas no sistema""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT code, name FROM Category") #Crio uma lista para armazenar os resultados categories = [] #Preencho os dados do objeto com as informações retornadas for category in cursor: cat = Category(category[0], category[1]) categories.append(cat) #Fecho o cursor cursor.close() #Retorno a lista de objetos return categories except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def selectCategory(self, code): """Retorna informações de uma categoria""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo a seleção cursor.execute("SELECT code, name FROM Category WHERE code = " + str(code) + " ") #Preencho os dados do objeto com as informações retornadas for category in cursor: self.code = category[0] self.name = category[1] #Fecho o cursor cursor.close() #Retorno o objeto return self except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def selectProducer(self, code): """Retorna informações de um fornecedor""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo a seleção cursor.execute("SELECT code, name, docno, phone, cellphone, address, neighborhood, city, state FROM Producer WHERE code = " + str(code) + " ") #Preencho os dados do objeto com as informações retornadas for producer in cursor: self.code = producer[0] self.name = producer[1] self.docno = producer[2] self.phone = producer[3] self.cellphone = producer[4] self.address = producer[5] self.neighborhood = producer[6] self.city = producer[7] self.state = producer[8] #Fecho o cursor cursor.close() #Retorno o objeto return self except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def selectAllProducts(self): """Recupera todos os produtos cadastrados no sistema""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT code, name, category FROM Product") #Crio uma lista para armazenar os resultados products = [] #Preencho os dados do objeto com as informações retornadas for product in cursor: prod = Product(product[0], product[1], Category().selectCategory(product[2])) products.append(prod) #Fecho o cursor cursor.close() #Retorno a lista de objetos return products except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False
def isNew(self): """Verifica se a categoria é nova.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT COUNT(*) FROM Category WHERE code = " + str(self.code) + " ") #Guardo o número de registros retornado count = cursor.fetchone()[0] #Fecho o cursor cursor.close() #Retorno a lista de objetos return count <= 0 except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return False def nextCode(self): """Verifico qual é o próximo código de categoria disponível.""" #Instancio a classe banco database = Database() try: #Crio um cursor para acessar o banco de dados cursor = database.conn.cursor() #Executo o select cursor.execute("SELECT MAX(code) FROM Category") #Guardo o número de registros retornado count = cursor.fetchone()[0] #Fecho o cursor cursor.close() #Retorno a lista de objetos return count + 1 except: #Capturo a mensagem de erro error = traceback.format_exc() print(error) return 0
import InterpreterController from View.iView import * from Model.Interpreter import * from Model.FileHandler.FileHandler import * from Model.DataValidation.EmpDataValidator import * from Model.Database.Database import * import sys if __name__ == '__main__': InterpreterController(EmployeeData_View(), Interpreter( FileHandler(), DataValidator(), Database(), InterpreterController.set_file_path(sys.argv))).cmdloop() # sys.argv is a list in Python, # which contains the command-line # arguments passed to the script. # With the len(sys.argv) function # you can count the number of arguments.
class Model: __database = None __users_table_name = "users" def __init__(self): pass ''' first of all this method checks if the user_id exists in database if exists so it does nothing! and if not it adds the user information into database ! ''' def add_user_in_database(self, user_id: int, update_obj): self.__database.connect_db() cond = "user_id=\"%d\"" % user_id result = self.__database.get_rows(self.__users_table_name, cond) if len(result) == 0: try: __first_name = update_obj["message"]["from"]["first_name"] except: __first_name = "--" try: __username = update_obj["message"]["from"]["username"] except Exception: __username = "******" model = [["user_id", user_id, False], ["first_name", __first_name, True], ["user_name", __username, True]] self.__database.insert(self.__users_table_name, model) self.__database.close_db() ''' ''' def configure_database(self, database_info, db_connection): db = Database() username = db_connection["username"] password = db_connection["password"] dbname = database_info["db_name"] db.connect_db(username=username, password=password) # creating the database if not exist! query = "CREATE DATABASE IF NOT EXISTS " + dbname db.exec_query(query) db.close_db() # initializing the connection data into Database class! self.__database = Database(username=username, password=password, dbname=dbname) # creating the tables if not exists! self.__database.connect_db() for t in database_info["tables"]: # checking if table exists or not! cond = "table_schema='%s' and table_name='%s'" % (dbname, t["table_name"]) result = self.__database.get_rows("information_schema.tables", cond) if len(result) == 0: self.__database.create_table(t["table_name"], t["table_struct"]) self.__database.close_db()