Você está na página 1de 10

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

1 de 10

www.devmedia.com.br
[verso para impresso]
Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=16997

Criando uma aplicao com o


Lazarus e banco de dados Firebird
Parte 03
Neste artigo estarei mostrando um passo a passo sobre como
criar uma aplicao usando a ferramenta de desenvolvimento
Lazarus, juntamente com o componente ZeosDBO, conectando
em um banco de dados do Firebird.

Nesta parte do artigo, vamos construir as telas de cadastro do nosso aplicativo. J com o
Lazarus aberto em nosso projeto, vamos abrir o datamodule criado anteriormente para
adicionarmos os componentes de ligao do aplicativo com a tabela.
Adicione os componentes TZQuery e TZSequence da paleta Zeos Access, e o componente
TDataSource da paleta Data Access, para cada tabela criada no banco de dados. Veja o
Exemplo:

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

2 de 10

Agora configure as propriedades de cada um dos componentes, direcionando para as devidas


tabelas seguindo as informaes abaixo:

Componentes do Tipo TZQuery


Connection = ZConnection1;
Sequence = ZSeqContato (respectivamente);
SequenceField = ID (respectivamente, conforme o campo auto-incremental da tabela);
SQL = select * from contatos e select * from agenda where agenda.id_contato = :pID
Params = (Apenas para o componente relacionado a tabela de agenda) Selecione o parametro
e configure as propriedades DataType e ParamType, conforme figura abaixo;

WhereMode = wmWhereAll;

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

3 de 10

Componentes do Tipo TZSequence


Connection = ZConnection1;
SequenceName = Selecione o respectivo Sequence da tabela;

Conponentes do Tipo TDataSource


DataSet = Selecione o respectivo componente TZQuery;

Adicione os seguintes cdigos no evento OnNewRecord dos componentes TZQuery


respectivamente das tabelas:

Contato:
DataSet.FieldByName('ID').AsInteger := ZSeqContato.GetNextValue;

Agenda:
DataSet.FieldByName('ID').AsInteger := ZSeqAgenda.GetNextValue;

Aps isso d um duplo clique no componente TZQuery, e na janela que se abre clique com o
boto da direita do mouse e clique em ADD Fields. Na outra janela que se abrir, selecione
todos os campos e clique no boto Create, para que os campos fiquem disponveis no
componente TZQuery. Repita este procedimento para todas as tabelas. Veja exemplo abaixo:

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

4 de 10

Agora com o Datamodule configurado, vamos criar o formulrio de cadastro. Para isso clique na
opo File->New Form do menu principal, para inserir um novo formulrio no aplicativo.
D um nome para o formulrio e altere sua propriedade Caption a sua escolha e salve o
mesmo junto com os outros arquivos do projeto.
Agora clique no formulrio e pressione F12 para ir codificao do mesmo, e abaixo da
clausula implementation adicione o cdigo Uses uDM;. Veja figura abaixo:

Monte este formulrio conforme o exemplo das figuras abaixo, usando os seguintes
componentes:

PageControl da paleta Common Controls;

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

5 de 10

DbGrid e DbEdit da paleta Data Controls;


Panel e Label da paleta Standart;
BtnBtn da paleta Additonal;

Agora vamos codificar nosso aplicativo.

Adicione a unit dB, uFrmCadAgenda na clausula uses do formulrio;


Agora adicione o seguinte cdigo no evento onshow do formulrio:

DM.DataContato.DataSet.Open;

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

6 de 10

PageControl1.TabIndex:=0;

No Evento onClose adicione:

if DM.DataContato.DataSet.State in [dsInsert,dsEdit] then


begin
ShowMessage(' necessrio confirmar ou cancelar os dados');
Abort;
end;
DM.DataContato.DataSet.close;

Adicione um componente TActionList no formulrio, d um duplo clique no mesmo. Na jalena


que se abre, clique com o boto da direita e em seguida em New Action, para criar as aes
seguindo o exemplo da figura abaixo:

D um duplo clique sobre cada ao e codifique respectivamente, conforme indicado abaixo:

ActIncluir
DM.DataContato.DataSet.Append;

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

7 de 10

DBEdit2.SetFocus;

ActExcluir
DM.DataContato.DataSet.Delete;

ActConfirmar
DM.DataContato.DataSet.Post;

ActCancelar
DM.DataContato.DataSet.Cancel;

ActAgenda
FrmCadAgenda.pIDContato := DM.DataContato.DataSet.FieldByName('ID').AsInteger;
FrmCadAgenda.ShowModal;

ActEncerrar
Close;

Com isso conclumos a criao da tela de cadastro de Contatos.

Vamos agora incluir um novo formulrio para ser usado para o cadastro de agenda. Para isso
siga os mesmos passos da incluso do cadastro de contatos, alterando respectivamente os
dados para tabela de agenda. Veja abaixo como ficar a tela:

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

8 de 10

Codifique da seguinte forma:

Aps a clausula implementation adicione uses uDm,Db;, e crie uma varivel publica da
seguinte forma:

private
{ private declarations }

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

9 de 10

public
{ public declarations }
pIDContato : Integer;
end;

No evento OnShow do formulrio adicione:


DM.QryAgenda.Params.ParamByName('pID').AsInteger:=pIDContato;
DM.DataAgenda.DataSet.Open;

Nas Aes do componente ActionList adicione:

ActIncluir
DM.DataAgenda.DataSet.Append;
DM.DataAgenda.DataSet.FieldByName('ID_Contato').AsInteger := pIDContato;
DBEdit2.SetFocus;

ActExcluir
DM.DataAgenda.DataSet.Delete;

ActConfirmar
DM.DataAgenda.DataSet.Post;

ActCancelar
DM.DataAgenda.DataSet.Cancel;

ActEncerrar
Close;

04/06/2015 09:39

Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03


http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

10 de 10

E com isso conclumos tambm a tela de cadastro de agenda de compromissos. Basta compilar
o projeto e testar.

Observao: Ao final estarei disponibilizando os cdigos fontes deste projeto.

Luis Carlos Godinho


Programador formado em 1995, pela ETEIT Escola tcnica da UNIVALE. Atualmente trabalhando com a plataforma
Delphi. Tem se dedicado nos ltimos anos, ao desenvolvimento de aplicaes PAF-ECF, SPED fiscal e NFe.

04/06/2015 09:39