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 >> |
Conectando-se por
código
Vamos conectar-nos a
base de dados
Sqlite que criamos no primeiro parágrafo. Dependendo de
nossa
versão de Sqlite, usaremos o driver chamado sqlite ou o
sqlite3.
|
|
Para isso criemos um projeto gráfico chamado MisLivro. Criaremos também um formulário chamado Fmain, que será o de arranque, e, dentro dele um controle ColumnView chamado Tabela. Este controle ColumnView mostrará os dados da tabela que havíamos criado nos exercícios anteriores | ![]() Figura 19.
formulário FMain.
|
Agora vamos criar uma função que se conecte com a base de dados dentro do código do formulário: |
|
PRIVATE
hCon AS Connection
PRIVATE FUNCTION ConectarBase() AS Boolean IF hCon <> NULL THEN RETURN FALSE hCon = NEW Connection hCon.Host = "/home/Usuário/Bases" hCon.Name = "provas" hcon.Type = "sqlite" TRY hCon.Open IF ERROR THEN hCon = NULL message.Error("Erro ao conectar com a base") RETURN TRUE END IF RETURN FALSE END |
|
Definimos um
objeto Connection
que será acessível em todo o
formulário e
representa a conexão a nossa base de dados. Depois
escreve-se
uma função ConectarBase
que retorna FALSE
se tiver exito ou TRUE
se falhou.
O código implica estes passos: 1. Se já existe uma conexão (se o objeto hCon não é nulo), retornamos imediatamente indicando que já existe uma conexão FALSE, desta forma poderemos chamar sistematicamente esta função de vários pontos sem nos preocuparmos se já existe a conexão ou não. 2. Criamos o objeto Conexão, que a princípio não está conectado a nenhuma base, e proporcionamos as informações necessária para conectar: preenchemos a propriedade Host, que no caso de uma base de dados com servidor poderia ser um endereço IP, mas no caso do Sqlite é uma local dentro do sistema de arquivos (lembre de substituir /home/cientista/ pelo local onde |
|
Você
armazenou a base do
exemplo); depois indicamos o nome da base de dados (provas), que no
caso do Sqlite é também o nome do arquivo que
está
dentro da pasta /home/usuário/Bases; e por ultimo indicamos
o
tipo de base de dados que nos conectaremos, e que será
sqlite ou
sqlite3 de acordo com o desenho que realizamos com o gestor de base de
dados do Gambas. Se nossa conexão for com um servidor MySQL,
por
exemplo, também teríamos que preencher as
propriedades
Login e Password, com o nome de usuário e senha de acesso ao
servidor.
|
|
Já que não estamos
realmente conectados, podemos preencher todos estes dados na ordem que
desejarmos. |
|
3. depois tratamos
de abrir a conexão. Se não for
possível (por exemplo, por um endereço incorreto
ou uma
falha no servidor), disparará um erro, que capturamos com o
comando TRY.
4. Se ocorrer um erro, fazemos nulo novamente a conexão falida e retornamos com o valor de erro, que segundo decidimos é TRUE. 5. se pelo contrário tivermos exito, retornamos o valor correspondente (FALSE). A seguir, vamos criar uma função a que chamamos para encerrar a conexão. O algorítimo é simples, se não houver nenhuma conexão, retornamos, caso contrário, encerramos a conexão e a fazemos nula para que em uma próxima chamada a ConectarBase perceba-se que não há uma conexão ativa. |
|
PRIVATE
SUB EncerrarConexao()
IF hCon = NULL THEN RETURN hCon.Close() hCon = NULL END |
|
<< Anterior | Próximo >> |
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) |
|