O que mais me estimulou a estudar o
Gambas2 foi a facilidade com que os bancos de dados são manipulados e a facilidade de interação.
E difícil hoje encontrar aplicações comercias que, por exemplo, não utilizam banco de dados, ou seja, que a escrita é feita apenas em disco, apesar que devem existir algumas aplicações muito antigas que utilizam FORTRAN, no qual haviam uns esquemas diferentes para gravação de dados.
O Gambas2 comunica-se com a fonte de dados: ODBC (unixodbc), MySQL, SQLite2, SQLite3, PostgreSQL e Firebird.
No caso do PostgreSQL e MySQL, que funcionam como cliente/servidor, a conexão não é diferente, também é feita do tipo servidor. Já no caso do Sqlite, que o banco é baseado em arquivo, é necessário indicar a localização do mesmo.
Nesse artigo vou apresentar apresas a interação com o MySQL.
Módulo de conexão:
PUBLIC bd AS NEW Connection
PUBLIC opera AS Result
PUBLIC dbname AS String
PUBLIC SUB conectar_banco()
bd.Type = "mysql"
dbname = "banco"
bd.User = "root"
bd.Password = ""
bd.Close()
bd.Name = dbname
bd.Open()
bd.Begin()
END
Observe que a declaração das variáveis nesse módulo são feitas todas Public, já que serão utilizadas em todo o projeto. Não vou explicar detalhes desse processo pois já fiz isso:
Gambas2: Inserindo dados em tabela SQLite.
A diferença desse aí é que eu apontei a localização do banco, já que foi uma conexão no SQLite e o SQLite não é do cliente/servidor.
PUBLIC SUB Button2_Click()
conexao.conectar_banco()
conexao.opera = conexao.bd.Create("cadastro")
conexao.opera!nome_cad = TextBox1.Text
conexao.opera!ender_cad = TextBox2.Text
conexao.opera!rg_cad = TextBox3.Text
conexao.opera!telefone_cad = TextBox4.Text
conexao.opera!data_nasc_cad = TextBox5.Text
conexao.opera!data_cad = Day(Date) & "/" & Month(Date) & "/" & Year(Date)
conexao.opera.Update()
conexao.bd.Commit()
Message.Info("Registro salvo com sucesso !")
END
O código acima é utilizado para registrar dados.
Também foi explicado no exemplo acima com o SQLite. A diferença é que naquele caso eu coloquei tudo em um único comando, já dessa maneira eu criei um módulo de conexão, tornando o sistema mais simples de entender.