sexta-feira, 15 de julho de 2011

Inserindo dados no MySQL usando Lazarus+Zeoslib

É engraçado o fato da gente ficar saltando entre sistemas e modos de programação, acabamos descobrindo coisas interessantes e doutrinas de desenvolvimento diferentes, mesmo que utilizando a mesma linguagem, neste caso o Object Pascal, ou FreePascalvia IDE Lazarus.

Até pouco tempo eu me via preso ao Windows por causa do desenvolvimento em Delphi e erradamente pensava que não existia a linguagem que o Delphi usava, aí soube do Kylix (que nem consegui rodar ;( mas que poderia ser minha passagem para o Linux um dia...) continuei e aprendi cada vez mais, desenvolvi diversas aplicações algumas delas utilizando até mesmo SQL/Oracle e como todo programador fiquei maravilhado com o mundo dos bancos de dados relacionais.

Pois é, mas como no Linux tudo o que é fácil também é um tanto complicado (filosofia Unix - Mas isso é bom!) comecei a programar e quando me deparei com a inserção de dados em um sistema simples, ops;... Deparei com problemas, inseria dados no banco ele estava lá, mas quando reiniciava o sistema, CADÊ!? Os dados sumiam... Novamente, mudamos de sistema, de IDE neste caso e acabamos aprendendo coisas novas.

Simples assim:
No Delphi você tem lá seu DataModule e seu Database, manda um INSERT e os dados são inseridos, claro como água. Mas no Lazarus+ZeosLib, não é tão simples, porém, é bem mais sofisticada, uma vez que você avisa ao banco que vai começar ou terminar uma transação.

Veja o exemplo:

  DataModule1.ZConnection1.StartTransaction;
   with DataModule1.ZQueryInsereMidias do
     begin
        close;
        sql.Clear;
        sql.Add(VarSQLinsereDados);
        execsql;
        close;
     end;
  DataModule1.ZConnection1.Commit;

Ou seja, primeiro você abre a transação (StartTransaction) e no final você manda o Banco de Dados inserir os dados da transação (Commit).

Lembre-se que é necessário que o componente ZConnection presente em seu DataModule tenha a sua propriedade "AutoCommit" como TRUE.

Lógico que esta é a mais simples de todas as formas possíveis, mas como exemplo de funcionamento é bem funcional.


Bom Código!









Nenhum comentário:

Postar um comentário