def alterar_artists(self): # Funcao para alterar os dados de cada artista db.__init__() print ( "\nEsta prestes a ALTERAR dados da tabela 'ARTISTAS'." ) self.name = input ( "\nInsira o NOME do Artista que pretende Alterar: " ) try: with db.connection: db.cursor.execute ( '''SELECT Name FROM artists WHERE Name = ? ''', ( self.name, ) ) exists1 = db.cursor.fetchall() if exists1: # se existir o nome do artista pode colocar o novo nome new_name = input ( "Insira o novo NOME do Artista: " ) db.cursor.execute ( '''SELECT Name FROM artists WHERE Name = ? ''', ( new_name, ) ) exists = db.cursor.fetchall() if not exists: # se nao existir o novo nome na bd e alterado db.cursor.execute ( '''UPDATE artists SET Name = ? WHERE Name = ? ''', ( new_name, self.name ) ) db.getcommit() print ( "\nO Nome do Artista foi alterado com sucesso!" ) print ( "O Artista", self.name, "possui um novo Nome:", new_name ) else: # se o novo nome ja existe da erro print ( "\nERRO! O Artista",new_name,"ja existe!" ) else: # se o artista nao existir na bd print ( "\nERRO! O Artista",self.name,"nao existe!" ) except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print ( "\nERRO! Impossivel ALTERAR o Artista!" ) finally: db.closedb()
def apagar_albums(self): # Funcao para apagar albums db.__init__() print("\nEsta prestes a APAGAR dados da tabela 'Albums'.") self.title = input("Titulo do Album: ") try: with db.connection: db.cursor.execute('''SELECT Title FROM albums WHERE Title=?''', (self.title, )) exists = db.cursor.fetchall() if exists: # se o nome do album existir na bd continua e apaga db.cursor.execute( '''DELETE FROM Albums WHERE Title = ? ''', (self.title, )) db.getcommit() print("\nO Album", self.title, "foi eliminado com sucesso!") else: # senao da erro print("\nERRO! O Album", self.title, "nao existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel APAGAR o album!") finally: db.closedb()
def inserir_genres(self): # Funcao para inserir novos generos db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Generos'.") self.name = input("Nome do genero: ") try: with db.connection: db.cursor.execute('''SELECT Name FROM genres WHERE Name=?''', (self.name, )) exists = db.cursor.fetchall() if not exists: # se o genero nao existir ja na bd executa db.cursor.execute('''INSERT INTO genres(Name)VALUES(?)''', (self.name, )) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Generos' da base de dados." ) print("Genero:", self.name) else: # se o novo nome ja existe da erro print("\nERRO! O Genero", self.name, "ja existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel inserir Artista! ") finally: db.closedb()
def apagar_genres(self): # Funcao para apagar generos db.__init__() print("\nEsta prestes a APAGAR dados da tabela 'Generos'.") self.name = input("Nome do Genero:") try: with db.connection: db.cursor.execute('''SELECT Name FROM genres WHERE Name=?''', (self.name, )) exists = db.cursor.fetchall() if exists: # se o nome do genero existir na bd continua e apaga db.cursor.execute('''DELETE FROM genres WHERE Name = ? ''', (self.name, )) db.getcommit() print("\nO Genero,", self.name, "foi eliminado com sucesso!") else: # senao da erro print("\nERRO! O Genero", self.name, "nao existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel APAGAR o Genero!") finally: db.closedb()
def inserir_albums(self): # Funcao para inserir novos albums db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Albums'.") while True: # ciclo while para pedir informacoes do album ao utilizador try: self.title = input("\nTitulo do album: ") self.artistid = int(input("ID do artista: ")) if self.title == '' or self.title == ' ': # titulo vazio da erro print("\nERRO! INSIRA TODOS OS DADOS!") break elif self.artistid == '' or self.artistid == ' ': # id do artista da erro print("\nERRO! INSIRA TODOS OS DADOS!") break else: # continua senao houver erros nenhums try: with db.connection: db.cursor.execute( '''SELECT Title FROM albums WHERE Title=?''', (self.title, )) exists = db.cursor.fetchall() if not exists: # vai verificar o nome do album na bd senao existir executa db.cursor.execute( '''INSERT INTO albums(Title, Artistid) VALUES(?,?)''', (self.title, self.artistid)) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Albums' da base de dados." ) print("\nTitulo:", self.title) print("ID Artista:", self.artistid) break else: # senao da erro que o nome do album ja existe na bd print("\nERRO! O Album com o Titulo,", self.title, "ja existe!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel criar Album!") finally: db.closedb() except ValueError as error: # qualquer outro erro de parametros print("\nErro de Parametro! Valor Inteiro/Decimal/Vazio!") print("Erro:", error) break
def verificarContas( self ): # Função para verificar se a tabela utilizadores esta vazia, caso esteja vai criar o utilizador admin com a password admin db.cursor.execute("SELECT * FROM utilizadores") db.getcommit() admin = db.cursor.fetchall() if len(admin) == 0: db.cursor.execute( "INSERT INTO utilizadores Values('1','admin','21232f297a57a5a743894a0e4a801fc3')" ) db.cursor.execute("SELECT * FROM utilizadores") db.getcommit() results = db.cursor.fetchall() # Verificar os resultados obtidos for row in results: print(row) db.closedb()
def alterar_albums(self): # Funcao para modificar os dados de cada album db.__init__() print("\nEsta prestes a ALTERAR dados da tabela 'Albums'.") alt1 = input("\nPretende alterar: 1.TITULO | 2.ID do Artista: ") try: with db.connection: if alt1 == '1': # a escolha um para alterar o titulo do album self.title = input( "\nInsira o Titulo do album que pretende alterar: ") db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (self.title, )) exists1 = db.cursor.fetchall() if exists1: # se existir o titulo do album pode colocar o novo titulo new_title = input("Insira o NOVO Titulo do album: ") db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (new_title, )) exists = db.cursor.fetchall() if not exists: # se nao existir o novo titulo na bd e alterado db.cursor.execute( '''UPDATE albums SET Title = ? WHERE Title = ? ''', (new_title, self.title)) db.getcommit() print( "\nO Titulo do Album foi alterado com sucesso!" ) print("O Album", self.title, "possui um novo Titulo:", new_title) else: # se o novo titulo ja existe da erro print("\nERRO! O Album", new_title, "ja existe!") else: # se o album nao existir na bd print("\nERRO! O Album", self.title, "nao existe!") elif alt1 == '2': # se escolher a operacao de mudar id do artista self.title = input( "\nInsira o Titulo do album que pretende alterar o ID do Artista: " ) db.cursor.execute( '''SELECT Title FROM albums WHERE Title = ? ''', (self.title, )) exists = db.cursor.fetchall( ) # guarda o titulo do album para ver se existe na bd if exists: # se existir pode continuar new_artistid = input("Insira o NOVO ID do artista: ") db.cursor.execute( '''UPDATE Albums SET ArtistId = ? WHERE Title = ? ''', (new_artistid, self.title)) db.getcommit() print("\nID do Artista alterado com sucesso!") print("O Album", self.title, "possui um novo Artista com o ID:", new_artistid) else: # senao existir da erro print("\nERRO! O Album nao existe!") else: # caso escolha uma outro opcao da erro print("\nEscolha uma opcao valida!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel ALTERAR o Album!") finally: db.closedb()
def alterar_musics(self): # Funcao para modificar os dados de cada musica db.__init__() print("\nEsta prestes a ALTERAR dados da tabela 'Musicas'") view.escolha_operacao() # view para ver as escolhas de operacao alt1 = input("\nEscolha Opcao: ") try: with db.connection: if alt1 == '1': # a escolha um para alterar o nome da musica self.Name = input( " \nInsira o Nome da Musica que pretende alterar: ") db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists1 = db.cursor.fetchall() if exists1: # se existir o nome da musica pode colocar o novo nome new_name = input("Insira o NOVO Nome da Musica: ") if new_name != '': # nome introduzido altera o nome db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (new_name, )) exists = db.cursor.fetchall() else: # nome vazio da erro print("ERRO! Tem de inserir um NOME!") return if not exists: # se nao existir o novo nome na bd e alterado db.cursor.execute( '''UPDATE tracks SET Name = ? WHERE Name = ? ''', (new_name, self.Name)) db.getcommit() print( "\nO Nome da Musica foi alterado com sucesso!") print("A Musica", self.Name, "possui um novo Nome:", new_name) else: # se o novo nome ja existe da erro print("\nERRO! A Musica", new_name, "ja existe!") else: # se a musica nao existir na bd print("\nERRO! A Musica", self.Name, "nao existe!") elif alt1 == '2': # se escolher a operacao de mudar id do artista self.Name = input( "\nInsira o Nome da Musica que pretende alterar o ID do Album: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall( ) # guarda o nome da musica para ver se existe na bd if exists: # se existir pode continuar new_albumid = input("Insira o NOVO ID do Album: ") db.cursor.execute( '''UPDATE tracks SET ArtistId = ? WHERE Name = ? ''', (new_albumid, self.Name)) db.getcommit() print("\nID do Album alterado com sucesso!") print("A Musica", self.Name, "possui um novo Album com o ID:", new_albumid) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '3': # se escolher a operacao de mudar id do genero self.Name = input( "\nInsira o Nome da Musica que pretende alterar o ID do Genero: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall( ) # guardar o nome da musica para ver se existe na bd if exists: # se existir pode continuar new_genreid = input("Insira o NOVO ID do Genero: ") db.cursor.execute( '''UPDATE tracks SET GenreId = ? WHERE Name = ? ''', (new_genreid, self.Name)) db.getcommit() print("\nID do Genero alterado com sucesso!") print("A Musica", self.Name, "possui um novo Genero com o ID:", new_genreid) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '4': # se escolher a operacao de mudar o compositor self.Name = input( "\nInsira o Nome da Musica que pretende alterar o Compositor: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_composer = input("Insira o NOVO Compositor: ") db.cursor.execute( '''UPDATE tracks SET Composer = ? WHERE Name = ? ''', (new_composer, self.Name)) db.getcommit() print("\nCompositor alterado com sucesso!") print(" A Musica", self.Name, "possui um novo Compositor:", new_composer) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '5': # se escolher a operacao de mudar os milisegundos self.Name = input( "\nInsira o Nome da Musica que pretende alterar os MiliSegundos: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_milliseconds = input( " Insira o NOVO Tempo MiliSegundos: ") db.cursor.execute( '''UPDATE tracks SET Milliseconds = ? WHERE Name = ? ''', (new_milliseconds, self.Name)) db.getcommit() print("\nMiliSegundos alterado com sucesso!") print("A Musica", self.Name, "possui um novo Tempo MiliSegundos:", new_milliseconds) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '6': # se escolher a operacao de mudar os bytes self.Name = input( "\nInsira o Nome da Musica que pretende alterar os Bytes: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_bytes = input("Insira o NOVO Tamanho Bytes: ") db.cursor.execute( '''UPDATE tracks SET Bytes = ? WHERE Name = ? ''', (new_bytes, self.Name)) db.getcommit() print("\nBytes alterado com sucesso!") print(" A Musica", self.Name, "possui um novo Tamanho Bytes:", new_bytes) else: # senao existir da erro print("\nERRO! A Musica nao existe!") elif alt1 == '7': # se escolher a operacao de mudar o preco unitario self.Name = input( "\nInsira o Nome da Musica que pretende alterar o Preco Unitario: " ) db.cursor.execute( '''SELECT Name FROM tracks WHERE Name = ? ''', (self.Name, )) exists = db.cursor.fetchall() if exists: # se existir pode continuar new_unitprice = input("Insira o NOVO Preco Unitario: ") db.cursor.execute( '''UPDATE tracks SET UnitPrice = ? WHERE Name = ? ''', (new_unitprice, self.Name)) db.getcommit() print("\nPreco Unitario alterado com sucesso!") print("A Musica", self.Name, "possui um novo Preco Unitario:", new_unitprice) else: # senao existir da erro print("\nERRO! A Musica nao existe!") else: # caso escolha uma outro opcao da erro print("\nEscolha uma opcao valida!") except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel ALTERAR a Musica!") finally: db.closedb()
def inserir_musics(self): # Funcao para inserir novas musicas db.__init__() print("\nEsta prestes a INSERIR dados na tabela 'Musicas'.") while True: # ciclo while para pedir informacoes da musica ao utilizador try: self.Name = input("\nNome da Musica: ") self.AlbumId = int(input("ID do Album: ")) self.MediaTypeId = int(input("ID MediaType: ")) self.GenreId = int(input("ID do Genero: ")) self.Composer = input(str("Compositor: ")) self.Milliseconds = int(input("Milisegundos: ")) self.Bytes = int(input("Bytes: ")) self.UnitPrice = float(input("Preco Unidade: ")) if self.Name == '' or self.Name == ' ': # nome vazio da erro print("\nERRO! INSIRA O NOME DA MUSICA!") break elif self.MediaTypeId == '' or self.MediaTypeId == ' ': # mediatype vazio da erro print("\nERRO! INSIRA O MEDIA TYPE DA MUSICA!") break elif self.Milliseconds == '' or self.Milliseconds == ' ': # milisegundos vazio da erro print("\nERRO! INSIRA O TEMPO MILISEGUNDOS DA MUSICA!") break elif self.UnitPrice == '' or self.UnitPrice == ' ': # preco unitario vazio da erro print("\nERRO! INSIRA O PRECO UNITARIO DA MUSICA!") break except ValueError as error: # qualquer outro erro que possa acontecer print("\nErro de Parametro! Valor Inteiro/Decimal/Vazio!") print("Erro:", error) break else: # continua senao houver erros nenhums try: with db.connection: db.__init__() db.cursor.execute( '''INSERT INTO tracks(Name, AlbumId, MediaTypeId, GenreId, Composer, Milliseconds, Bytes, UnitPrice) VALUES(?,?,?,?,?,?,?,?)''', (self.Name, self.AlbumId, self.MediaTypeId, self.GenreId, self.Composer, self.Milliseconds, self.Bytes, self.UnitPrice)) db.getcommit() print( "\nDados inseridos com sucesso na tabela 'Musicas' da base de dados." ) print("\nNome:", self.Name) print("ID do Album:", self.AlbumId) print("ID MediaType:", self.MediaTypeId) print("ID Genero:", self.GenreId) print("Compositor:", self.Composer) print("Milisegundos:", self.Milliseconds) print("Bytes:", self.Bytes) print("Preco Unidade:", self.UnitPrice) except sqlite3.IntegrityError: # qualquer outro erro que possa acontecer print("\nERRO! Impossivel inserir Musica!") print(sqlite3.IntegrityError()) finally: db.closedb() # fecha a bd