Agora que temos a tabela, precisamos entrar com dados nela. E aí voltamos para o gtk e os pacotes.
Vamos usar objetos Entry e o interessante, no caso, é que, como o tamanho da coluna não é definido na criação da tabela, podemos definí-lo na entrada de dados.
O comando SQL para inserir uma nova linha é:
INSERT INTO nome-da-tabela VALUES ('valor texto',valor numérico,...)
É preciso entrar com valores para todos os campos e na ordem que eles ocupam na tabela.
Vamos fazer um exercício - um pacote, agora - simples, entrando dados na tabela que criamos na aula anterior:
Só apresentamos, como sempre, uma parte do cógigo. Lembre-se dos imports específicos para o SQLite, visto em aula anterior.
#...
def __init__(self):
Activity.__init__(self)
#Usar sempre letras mono-espaçadas quando trabalhar com db
gtk.settings_get_default().props.gtk_font_name="Bitstream Vera Sans Mono 18"
#Criando base para layout
self.fix = gtk.Fixed()
self.add(self.fix)
self.fix.show()
#Criando os TextBoxes para entrada dos dados
self.matricE = gtk.Entry()
self.matricE.set_size_request(100,40)
#Colocando o cursor na área
self.matricE.set_text("")
self.matricE.grab_focus()
self.fix.put(self.matricE, 100,100)
self.matricE.show()
self.nomeE = gtk.Entry()
#Definindo tamanho do campo
self.nomeE.set_max_length(20)
self.nomeE.set_size_request(300,40)
self.fix.put(self.nomeE, 100,180)
self.nomeE.show()
self.idadeE = gtk.Entry()
self.idadeE.set_size_request(100,40)
self.fix.put(self.idadeE, 100,260)
self.idadeE.show()
self.codnivelE = gtk.Entry()
self.codnivelE.set_size_request(100,40)
self.fix.put(self.codnivelE, 100,340)
self.codnivelE.show()
#Criando Button
self.gv = gtk.Button("GRAVAR")
self.fix.put(self.gv, 200,400)
self.gv.show()
self.gv.connect("clicked",self.grava,None)
#Criando Label para mensagens
self.lb = gtk.Label("Entre matricula,nome,idade e nivel")
self.fix.put(self.lb, 200,450)
self.lb.show()
def grava(self,widget,data=None):
conn = sqlite.connect("/databases/alunos.db")
c = conn.cursor()
self.matric = self.matricE.get_text()
self.nome = self.nomeE.get_text()
self.idade = self.idadeE.get_text()
self.codnivel = self.codnivelE.get_text()
#Montando o comando SQL
com = "INSERT INTO cad VALUES('"+self.matric+"','"+self.nome+"',"+self.idade+",'"+self.codnivel+"')"
c.execute(com)
#NÃO SE ESQUEÇA DO COMMIT!!!
conn.commit()
self.lb.set_text("Gravado.Entre com outro ou saia da atividade."
#Limpando entradas
self.matricE.set_text("")
self.nomeE.set_text("")
self.idadeE.set_text("")
self.codnivelE.set_text("")
c.close()
conn.close()
Repare que no caso da "idade", como é numérico, não tem aspas no comando.
LIÇÂO ANTERIOR PRÓXIMA LIÇÂO ÍNDICE HOMEPAGE