
Enviado em 11/09/2017 - 19:49h
Boa noite. O código a seguir é para cadastro de produtos, no caso as informações passadas não são inseridas no banco de dados, o erro diz que a coluna não existe... Nunca trabalhei com sql antes, já pesquisei e o erro não ficou claro pra mim
#!/usr/bin python
# -*- coding: utf-8 -*-
### Importações ###
from tkinter import *
import sqlite3
### Globais ###
conn = sqlite3.connect("produtos.db")
cursor = conn.cursor()
def criarTabela():
cursor.execute("""
CREATE TABLE IF NOT EXISTS produtos (
matricula INTEGER NOT NULL PRIMARY KEY,
nome TEXT NOT NULL,
origem TEXT NOT NULL
);
""")
criarTabela()
#### Definições da Aplicação Principal ###
principal = Tk()
principal.title("Cadastro de Produtos")
principal.geometry("600x333")
principal.resizable(FALSE, FALSE)
#### Funções ###
def adicionar_produto():
matricula = etMatricula.get()
nome = etNome.get()
origem = etOrigem.get()
cursor.execute("""
INSERT INTO produtos (matricula, nome, origem) VALUES (?, ?, ?)""", (matricula, nome, origem))
conn.commit()
lstProdutos.insert(END, (matricula, nome, origem))
def deletar_produto():
matricula_produto = etMatriculaDeletar.get()
cursor.execute("""
DELETE FROM produtos WHERE origem=?""", (matricula_produto))
conn.commit()
lstProdutos.delete(0, END)
lista = cursor.execute("""
SELECT * FROM produtos;
""")
for i in lista:
lstProdutos.insert(END, i)
def mudar_origem():
matricula_produto = etMatriculaMudar.get()
nova_origem = etNovaOrigem.get()
cursor.execute("""
UPDATE produtos SET origem = ? WHERE matricula = ?""", (nova_origem, matricula_produto))
conn.commit()
lstProdutosdelete(0, END)
lista = cursor.execute("""
SELECT * FROM produtos;
""")
for i in lista:
lstProdutos.insert(END, i)
def exportar():
with io.open('produtos.sql', 'w') as f:
for linha in conn.iterdump():
f.write('%s\n' % linha)
cursor.execute("""
SELECT * FROM produtos;
""")
with io.open('produtos.txt', 'w') as f:
for linha in cursor.fetchall():
linha = str(linha)
f.write('%s\n' % linha)
lblTitulo = Label(principal, text="Cadastro")
lblNomeNota = Label(principal, text="Matrícula / Nome / Origem")
### Widgets - Adicionar ###
lblAdicionarProduto = Label(principal, text="Adicionar Produto")
lblMatricula = Label(principal, text="Matrícula: ")
lblNome = Label(principal, text="PRODUTO: ")
lblOrigem = Label(principal, text="ORIGEM: ")
etMatricula = Entry(principal)
etNome = Entry(principal)
etOrigem = Entry(principal)
btnAdd = Button(principal, text="Adicionar", command=adicionar_produto)
### Widgets - Deletar ###
lblDeletarProduto = Label(principal, text="Deletar produto")
lblMatriculaDeletar = Label(principal, text="Matrícula: ")
etMatriculaDeletar = Entry(principal, width=10)
btnDel = Button(principal, text="Deletar", command=deletar_produto)
### Widgets - Mudar origem ###
lblMudarOrigem = Label(principal, text="Mudar Origem")
lblMatriculaMudar = Label(principal, text="Origem: ")
lblNovaOrigem = Label(principal, text="Origem: ")
etMatriculaMudar = Entry(principal)
etNovaOrigem = Entry(principal)
btnMudarOrigem = Button(principal, text="Mudar Origem", command=mudar_origem)
### Widgets - Listar produtos ###
scrollbar = Scrollbar(principal)
lstProdutos = Listbox(principal, width=35, height=16)
lstProdutos.config(yscrollcommand=scrollbar.set)
#scrollbar.config(command=lstProdutos.yview)
lista = cursor.execute("""
SELECT * FROM produtos;
""")
for i in lista:
lstProdutos.insert(END, i)
### Posicionamento de Widgets - Principal ###
lblTitulo.place(x=275)
lblNomeNota.place(x=308, y=30)
### Posicionamento de Widgets - Listar produtos ####
lstProdutos.place(x=310, y=52)
scrollbar.place()
### Posicionamento de Widgets - Adicionar produtos ###
lblAdicionarProduto.place(x=100, y=30)
lblMatricula.place(x=10, y=52)
etMatricula.place(x=115, y=50)
lblNome.place(x=10, y=82)
etNome.place(x=115, y=80)
lblOrigem.place(x=10, y=112)
etOrigem.place(x=115, y=110)
btnAdd.place(x=115, y=145)
### Posicionamento de Widgets - Deletar ###
lblDeletarProduto.place(x=100, y=175)
lblMatriculaDeletar.place(x=10, y=197)
etMatriculaDeletar.place(x=80, y=195)
btnDel.place(x=175, y=198)
### Posicionamento de Widgets - Mudar ###
lblMudarOrigem.place(x=105, y=225)
lblMatriculaMudar.place(x=10, y=247)
etMatriculaMudar.place(x=115, y=245)
lblNovaOrigem.place(x=10, y=277)
etNovaOrigem.place(x=115, y=275)
btnMudarOrigem.place(x=115, y=308)
principal.mainloop()
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Links importantes de usuários do vol (4)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (2)
Para os fãs de DOOM, um vídeo do Romero (com dublagem em pt-br disponí... (2)









