CAPÍTULO
5 Programação visual com Software Livre EDIT LIN EDITORIAL S.L, dos autores Daniel Campos Fernández e José Luis Redrejo. Prólogo de Benoit Minisini |
|
<< Anterior | Próximo >> |
Apagar registros Podemos
adicionar um código para apagar registros. Quer dizer que
quando
o usuário pressionar a tecla Supr ou Del, o registro que
está selecionado será apagado.
|
|
PUBLIC
SUB Tabela_KeyRelease()
IF key.Delete THEN IF tabela.Current = NULL THEN RETURN IF tabela.Current.Selected = FALSE THEN RETURN IF ConectarBase() THEN RETURN TRY hCon.Exec("delete from dados where titulo=&1", tabela.Current.Key) IF ERROR THEN message.Error("Impossível apagar o registro") ELSE tabela.Current.Delete() END IF EncerrarConexao() END IF END |
|
Aproveitando o evento Key_Release de nosso controle Tabela. Se a tecla pressionada é Del ou Supr, primeiro comprovamos se existe algum elemento atual na tabela; se não existir, saímos. Se o elemento atual não estiver selecionado, também saímos. Por outro lado, tratamos de abrir a conexão, e se já existe executamos uma instrução SQL para apagar o registro cuja chave coincide com a do registro de nosso controle ColumnView. (por exemplo, uma base de somente leitura), informa-se ao usuário. Em caso contrário, apaga-se também o registro do controle para refletir a troca. Encerramos a conexão e saímos da função. |
|
Em geral é preferível usar KeyRelease e MouseRelease, os equivalentes Press, quando se executa uma ação por parte do usuário. Deste modo, quando for pressionado o botão do mouse, temos tempo para afasta-lo do controle e cancelar assim uma ação errada, antes de levantar o dedo do mouse. De outro modo, no evento MousePress poderiamos apagar um registro sem tempo para reagir. | |
Como podemos observar, no caso seguinte a sentença SQL está construída de um modo diferente. Temos dois parâmetros, o primeiro é parte da consulta e o segundo contem o elemento concreto a que nos referimos: |
|
hCon.Exec("delete from dados where
titulo=&1", tabela.Current.Key)
|
|
O
método Exec admite um
número variável de parâmetros, e na
hora de tratar
a sentença SQL, Gambas substitui os indicadores de
parâmetros (&1, &2, &3 .... ) pelo
parâmetro
que corresponde em ordem (&1 é o primeiro
parâmetro
extra, &2 o segundo...). Alem disso, formata os dados segundo
se
necessite (por exemplo, este parâmetro corresponde a um dado
do
tipo String, que na sintaxe Sqlite requer umas aspas antes e depois).
Isto é muito útil para trabalharmos com dados do
tipo
data/hora, cadeias de texto e números com decimais,
já
que a sintaxe pode variar de um tipo de base de dados para outras,
inclusive com a mesma base pode trocar segundo os parâmetros
regionais (formato de data, usar como um ponto para decimais, etc.).
Com este sistema podemos por simplesmente um dado tipo Cadeia,
Booleano, Data ou número, e o Gambas se encarrega de dar o
formato adequado.
|
|
Deixar ao Gambas a tarefa de dar o formato aos diferentes tipos de dados, evitará muitos problemas se trocarmos de sistema gestor de base de dados, ou pretendermos que a aplicação funcione corretamente em vários PC que pode ter diferentes configurações. | |
<< Anterior | Próximo >> |
HOME |
|
Cópia literal Extraído
do livro “GAMBAS, programação visual
com software
Livre”, da editora EDIT LIN EDITORIAL S.L, dos
autores Daniel Campos Fernández e José
Luis
Redrejo. Prólogo de Benoit
Minisini
LICENSA DESTE DOCUMENTO É
permitido a cópia e
distribuição da
totalidade ou parte desta obra sem fins lucrativo. Toda
cópia
total ou parcial devera expressar o nome do autor e da editora e
incluir esta mesma licença, adicionando se é uma
cópia literal “Cópia
literal”. Se é
autorizada a modificação e
tradução da
obra sem fins lucrativo sempre se deve constar na obra
resultante a modificação o nome da obra
original o
autor da obra original e o nome da editora e a obra resultante
também deverá ser livremente reproduzida,
distribuída, ao publico e transformada em termos similares
ao
exposto nesta licença.
Tradução Cientista (Antonio Sousa) |
|