Gambas2 e MySQL, aprofundando relações

Nesse artigo mostrarei como fazer busca de registro MySQL no Gambas2, além de outros itens interessantes, como botões de movimentação e edição.

[ Hits: 32.958 ]

Por: Jose Ribeiro em 06/08/2009 | Blog: https://otrsinbox.cloud


Preparando o ambiente



Nesse artigo mostrarei como fazer busca de registro MySQL no Gambas2, além de outros itens interessantes.

Por que no Gambas2?

Venho apresentando uma série de artigos e dicas sobre essa IDE, acho que ela é sim uma ótima opção de ambiente de desenvolvimento para Linux, além de ser bastante ágil fazer as coisas por ela. Possui hoje uma documentação satisfatória e quando se fala de trabalhar com banco de dados, ela realmente supera algumas outras opções.

Mesmo assim, acho que faltam algumas coisas para aprimorar o desenvolvimento de aplicações para uso comercial, já que quando se fala em desenvolvimento de aplicações comerciais, ganha aquela que faz tudo de forma automatizada. Mas vamos lá a mais um artigo!

No MySQL crie a seguinte tabela:

Banco: agenda Tabela: cadastro Campos:
  • código - tipo inteiro (dessa vez não vamos utilizar auto-numeração, vou apresentar como gerar o próximo código, via programação, para caso se trabalhe com algum banco de dados que não apresente esse recurso);
  • nome - tipo texto, varchar(50);
  • telefone - tipo texto, varchar(15).

Bom, nem vamos criar uma tabela enorme, já que fazer a programação de poucos ou muitos campos é a mesma coisa, só muda o tempo que vai demorar.

O script SQL ficou assim:

CREATE TABLE `agenda`.`cadastro` (
  `codigo` integer  NOT NULL,
  `nome` varchar(100)  NOT NULL,
  `telefone` varchar(15) ,
  PRIMARY KEY (`codigo`)
)
ENGINE = MyISAM;

Depois desse exaustivo processo, vamos começar a utilizar o Gambas2! : )

Abra o Gambas2, crie um novo projeto e clique em database access para já ativar os componentes necessário para trabalhar com banco de dados. No Gambas3 existirá o componente gb.mysql para acesso a base de dados MySQL, mas no 2.x ainda é utilizado o gb.db.
Linux: Gambas2 e Mysql aprofundando relações.
Feito isso acabe de criar o projeto normalmente.

Se tudo ocorreu bem até agora, vamos começar a programar.

Crie um módulo com o nome "cnx", esse módulo será utilizado para criar a conexão com o banco. A programação do módulo cnx será aqui.

PUBLIC conexao AS NEW Connection

PUBLIC PROCEDURE ConectarBanco()

   conexao.type = "mysql"
   conexao.user = "root"
   conexao.password = "1"    
   conexao.name = "agenda"
   conexao.Open()

END

Feito isso teste a conexão para isso, faça o seguinte, clique em fmain duas vezes, vai abrir o evento form_open():

PUBLIC SUB Form_Open()

   cnx.ConectarBanco()

END

Aperte F5. Se ele abriu o formulário sem nenhum erro, muito provável que esteja tudo certo.

Para entender o que foi feito acima, leia isso: Gambas2: Inserindo dados em tabela SQLite.

    Próxima página

Páginas do artigo
   1. Preparando o ambiente
   2. Botões: novo, salvar, editar, excluir
   3. Botões: Primeiro, Anterior, Próximo e Último
   4. Busca de registro e vídeo complementar
   5. Exemplos de programas escritos em Gambas2
Outros artigos deste autor

Introdução ao Gambas2 (parte 2)

BrOffice.org BASE: Criando banco de dados em 5 minutos

Imagens e áudio no banco de dados Oracle

OTRS - Revolucione seu Help Desk com esta ferramenta

Mensageiro instantâneo

Leitura recomendada

Slackware + MariaDB (MySQL): importando e exportando arquivos TXT

MariaDB + phpMyAdmin no Ubuntu 12.04 LTS

Configurando Apache + MySQL + PHP no Slackware

Instalação e configuração do MySQL com phpMyAdmin no CentOS - Iniciantes

Sqlite Manager - Plugin do Firefox para criação e manipulação SQL

  
Comentários
[1] Comentário enviado por usrlinux em 06/08/2009 - 08:45h

Discordo do seu ponto de vista de ferramentas para uso comercial são ferramentas que fazem coisas de maneira automatizada, o que leva uma ferramenta ser mais utilizada comercialmente é o suporte que ela oferece aos desenvolvedores que a utilizam para desenvolver suas aplicações.
Embora o Gambas 2 tenha uma documentação razoável qual é o suporte que a equipe de poucos colaboradores dessa ferramenta podem dar ao desenvolvedor que irá utilizá-la, ainda que seja uma IDE versátil.

[2] Comentário enviado por joserribeirojuni em 06/08/2009 - 09:39h

usrlinux, Justificando meu ponto de vista é o seguinte, quando se fala em software livre, sempre são poucos colaboradores, que oferecem o máximo de suporte possível de acordo com suas possibilidades, e discordo quando questiona o suporte dessa ferramenta, segue dois links que uso nessa afirmação.

http://gambasdoc.org/help/doc/forum?en&view

http://gambasdoc.org/help/doc/report?en&view

Além disso toda comunidade é aberta a ajudar.

Além do mais é pelo motivo de automatizar o sucesso de ferramentas como: GenuXus.
Não que isso seja ruim é claro.
Completanto, hoje automatizar faz sim, toda a diferença, juntamente com o suporte é claro.
Abraço.

[3] Comentário enviado por usrlinux em 06/08/2009 - 10:29h

Quando eu falei sobre suporte não estava somente falando de um meio de comunicação para reportar os erros ou problemas de codificação, mas sendo isso uma coisa básica que deve existir num projeto livre e sério para atrair pessoas da comunidade a utilizar a ferramenta e ajudar no seu aperfeiçoamento.
Quero salientar que isso demanda tempo, e seu cliente não vai ficar esperando um bug ser concertado ou suporte a certa tecnologia ser adicionado na sua ferramenta de desenvovimento, são estes os fatores que tornam uma ferramenta de desenvolvimento mais comercial.

Sobre Genexus embora agilize o processo de desenvolvimento existem desvatagens a primeira delas é que existem poucos profissionais aptos a desenvolver com a ferramenta, desta forma, existe também profissionais com pouco conhecimento que não utilizam as melhores práticas de desenvolvimento por falta de domínio, o que causa problemas sérios em longo prazo e comentários de que a ferramenta é ruim. Outra desvantagem ainda está no preço das licenças que são vendidas por gerador, porém em médio prazo elas “se pagam” devido os benefícios de produtividade.


[4] Comentário enviado por joserribeirojuni em 06/08/2009 - 10:44h

Meu caro, o fato é que na pratica ferramentas livre, tem seus Bugs corrigidos mais rapidamente, e suporte a novas tecnologias são sempre implementados mais rapidos, como por exemplo, o Kernel Linux, que ja suportar USB 3.0.

Abraço.


[5] Comentário enviado por usrlinux em 06/08/2009 - 12:47h

Leia este artigo você pode se encaixar aqui:

http://www.vivaolinux.com.br/artigo/Se-o-Linux-e-tao-melhor-que-o-Windows-e-e-de-graca-por-que-a-mai...


[6] Comentário enviado por joserribeirojuni em 12/08/2009 - 09:55h

Não, não se encaixa nesse contexto não.

[7] Comentário enviado por HER GNU/LINUX em 17/05/2010 - 16:32h

Salve, José Ribeiro!
Parabéns pela contribuição. O Importante é a colocabração, pois sempre vai ajudar alguém. Veja bem! Talvez você possa me ajudar, sem compromisso.
No decorrer de minha vida profissional sempre usei o Microsoft Access para facilitar as tarefas rotineiras nos diversos setores que passei pela empresa que trabalho.
Para você ter uma ideia hoje gerencio uma área de traporte de fretamento com um pequeno banco de dados que criei. Ele é eficiente até agora, mas entendo que seu limite
tá para ser esgotado. Claro! que o Microsoft accesse é prático e a exigência para o seu desempenho está na modalagem de dados. Bem! Gostaria de aprender um banco de
dados que eu pudesse usá-lo no ambiente Linux - Ubuntu. Na verdade não sei nem por onde começar. Você poderia dar uma dica.
De preferência que fosse prático como o Access. O banco de dados que acompanha o BrOffice ao meu é pobre em recursos práticos que estou acostumado.
Abraços e continue assim garoto.

[8] Comentário enviado por hudyfx em 29/04/2011 - 11:25h



ola cara belza, eu estava dando uma olhada no seu tutorial, ache bem legal...

porem eu queria questionar algumas coisas, percebi que o programa faz a conexão quando o banco de dado quando o mesmo é executado:
PUBLIC SUB Form_Open()

cnx.ConectarBanco()

END

só que Mysql expira a conexão depois de um certo tempo, se o programa fica muito tempo aberto e a conexao expira, é notório o fato de que o usuario deve fechar e abrir o programa para restabelecer a conexão.
alem disso, se vc ( por exemplo ) tem uma variavel publica do tipo "result" o valor estático da variavel só é preservada quando aconexao esta ativa.

com base nisso nao seria interessante e "evento" se conectar no banco de dados, fazer o que ele tiver que fazer, e depois desconectar? Assim ele nao pararia nunca e a conexão com o banco nao ficaria preza na inicialização do programa?
exemplo:

PUBLIC SUB ToggleButton6_Click()

cnx.ConectarBanco <--------"Abre conexao
reg = cnx.conexao.Exec("select * from cadastro") <----------" Faz o que tem que fazer
reg.MoveFirst()
WHILE reg!codigo <> Val(TextBox1.Text)
reg.MoveNext
WEND
reg.MovePrevious()
TextBox1.Text = reg!codigo
TextBox2.Text = reg!nome
TextBox3.Text = reg!telefone
CATCH
Message.Info("Impossível mover registro")
cnx.conexao.Close <----------------" Fecha a conexao
END

com isso nao é necessário abrir a conexao no Form_Open, e o banco não fica preso
acredito que assim seja bem melhor...

[9] Comentário enviado por joserribeirojuni em 29/04/2011 - 11:41h

Sim cara, seria interessante, quando escrevi esse arquivo eu tinha começado a faculdade tinha pouca noção. Se fosse fazer hoje eu mudaria pelo menos uns 8 detalhes nesse artigo.

Abraço.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts