def excluirCliente(): codigo = editCodigo.get() try: if codigo == "": raise Exception("Faça uma pesquisa") conn = ConexaoDB().conexao() cursor = conn.cursor() sql = """ DELETE FROM clientes WHERE id_clientes = %s; """ val = (codigo,) cursor.execute(sql, val) conn.commit() labelStatus["text"] = "registro deletado." editpesquisa.delete(0, END) # Limpar Campos pesquisarCliente() except Exception as err: labelStatus["text"] = err print(err) else: cursor.close() conn.close()
def pesquisarCliente(): """ Pesquisar pelo nome do cliente """ # Valor a ser pesquisado pesquisar = editpesquisa.get() try: # Conexção ao Banco de dados conn = ConexaoDB(True).conexao() # tupla nomeada com buffer. cursor = conn.cursor(named_tuple=True) # Montar SQL cursor.execute("SELECT id_clientes, nome_clientes, telefone_clientes, email_clientes " "FROM clientes " "WHERE nome_clientes LIKE %s LIMIT %s;", (f"%{pesquisar}%", 1,)) row = cursor.fetchone() codigo = 0 if cursor.rowcount: labelStatus["text"] = "" codigo = row.id_clientes novoCliente(codigo) editCodigo.configure(state="normal") editCodigo.insert(0, codigo) editCodigo.configure(state="readonly") editNome.insert(0, row.nome_clientes) editFone.insert(0, row.telefone_clientes) editEmail.insert(0, row.email_clientes) else: labelStatus["text"] = "Não existe" labelStatus["font"] = ("Arial", "16", "bold") if codigo: botaoGravar.configure(state="disabled") except Exception as err: labelStatus["text"] = "Ocorreu um erro, desculpe" print(err) else: cursor.close() conn.close()
conn = ConexaoDB().conexao() # classe cria um cursor que retorna linhas como namedtuple. cursor = conn.cursor(named_tuple=True) try: # Executar o SQL cursor.execute( "SELECT nome_clientes, telefone_clientes FROM clientes order by nome_clientes LIMIT 1" ) # rowcount iria exibir -1 print("número de linhas (inicial):", cursor.rowcount, end="\n\n\n") # Resultado, processado por Tupla nomeada for row in cursor: print(row) print(row.nome_clientes, row.telefone_clientes) # Exibir numero de linhas existente na tabela print("\n\nnúmero de linhas (inicial):", cursor.rowcount) except: raise Exception("Problema para selecionar") except Exception as err: print("Erro:", err) else: cursor.close() conn.close()
# # Numero de linhas inseridas print("rowcount:", cursor.rowcount) print(cursor) # # Lista o resultado a saida cursor.execute("select * from tmp_clientes") for r in cursor: print(r) # # Except de varios erros except (mysql.connector.IntegrityError, mysql.connector.DataError) as err: print("IntegrityError or DataError") print(err) except mysql.connector.ProgrammingError as err: print("ProgrammingError") print(err.errno) print(err.sqlstate) print(err.msg) except mysql.connector.Error as err: print("Error") print(err) else: cursor.close() db.close()
def cadastraCliente(): """ Cadastrar As ações Insert e Update São realizadas na mesma função """ codigo = editCodigo.get() codigo = 0 if codigo == "" else int(codigo) nome = editNome.get() fone = editFone.get() email = editEmail.get() if nome == "" or fone == "" or email == "": labelStatus["text"] = "Todos campos são obrigatório" else: try: conn = ConexaoDB().conexao() cursor = conn.cursor() dados = { "id": codigo, "nome": nome, "fone": fone, "email": email } # Mondar INSERT com UPDATE sql = """ INSERT INTO clientes (id_clientes, nome_clientes, telefone_clientes, email_clientes, aniversario_clientes) VALUES (%(id)s, %(nome)s, %(fone)s, %(email)s, NOW()) ON DUPLICATE KEY UPDATE id_clientes = %(id)s, nome_clientes = %(nome)s, telefone_clientes = %(fone)s, email_clientes = %(email)s; """ # print(dados) # print(sql, "\n\n\n\n") cursor.execute(sql, dados) conn.commit() editCodigo.configure(state="normal") editCodigo.delete(0, END) editCodigo.insert(0, cursor.lastrowid) editCodigo.configure(state="readonly") botaoGravar.configure(state="disabled") botaoAlterar.configure(state="normal") botaoExcluir.configure(state="normal") labelStatus["text"] = "Gravado com sucesso!" # # Except de varios erros except (mysql.connector.IntegrityError, mysql.connector.DataError) as err: print("IntegrityError or DataError") print(err) except mysql.connector.ProgrammingError as err: print("ProgrammingError") print(err.errno) print(err.sqlstate) print(err.msg) except mysql.connector.Error as err: print("Error") print(err) else: # novoCliente() cursor.close() conn.close()
def conteudo(self, master): frameMid = Frame(master) Label(frameMid, text="Lista de Pessoas", font=("Arial", 15)).grid(row=1, column=1, columnspan=4, pady=5) Label(frameMid, text="Código", relief=RIDGE, width=7, bg="dark grey").grid(row=2, column=1) Label(frameMid, text="Nome", relief=RIDGE, width=30, bg="dark grey").grid(row=2, column=2) Label(frameMid, text="Telefone", relief=RIDGE, width=15, bg="dark grey").grid(row=2, column=3) Label(frameMid, text="E-mail", relief=RIDGE, width=30, bg="dark grey").grid(row=2, column=4) try: conn = ConexaoDB().conexao() cursor = conn.cursor(buffered=True, raw=True) sql = """ select id_clientes, nome_clientes, telefone_clientes, email_clientes from clientes order by id_clientes asc limit 10; """ cursor.execute(sql) contRow = 2 for (codigo, nome, fone, email) in cursor: # print(codigo.decode(), nome.decode(), fone.decode(), email.decode()) corRow = "white" if contRow % 2 == 0 else "light gray" Label(frameMid, text=codigo.decode(), relief=RIDGE, width=7, bg=corRow).grid(row=contRow + 1, column=1) Label(frameMid, text=nome.decode(), relief=RIDGE, width=30, bg=corRow, anchor=W).grid(row=contRow + 1, column=2) Label(frameMid, text=fone.decode(), relief=RIDGE, width=15, bg=corRow).grid(row=contRow + 1, column=3) Label(frameMid, text=email.decode(), relief=RIDGE, width=30, bg=corRow, anchor=E).grid(row=contRow + 1, column=4) contRow += 1 except Exception as err: print("Erro:", err) else: cursor.close() conn.close() frameMid.pack()