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)