Exemple #1
0
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()
Exemple #2
0
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()
Exemple #3
0
    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()
Exemple #4
0
    #
    # 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()
Exemple #5
0
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()
Exemple #6
0
    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()