Criando Uma Aplicação Com o Lazarus e Banco de Dados Firebird – Parte 03

Embed Size (px)

DESCRIPTION

Apostila

Citation preview

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

    Criando uma aplicao com oLazarus e banco de dados Firebird Parte 03Neste artigo estarei mostrando um passo a passo sobre comocriar uma aplicao usando a ferramenta de desenvolvimentoLazarus, juntamente com o componente ZeosDBO, conectandoem 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:

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    1 de 10 04/06/2015 09:39

  • 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;

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    2 de 10 04/06/2015 09:39

  • 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:

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    3 de 10 04/06/2015 09:39

  • 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;

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    4 de 10 04/06/2015 09:39

  • 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;

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    5 de 10 04/06/2015 09:39

  • 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;

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    6 de 10 04/06/2015 09:39

  • 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:

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    7 de 10 04/06/2015 09:39

  • Codifique da seguinte forma:

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

    seguinte forma:

    private

    { private declarations }

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    8 de 10 04/06/2015 09:39

  • 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;

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    9 de 10 04/06/2015 09:39

  • 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 plataformaDelphi. Tem se dedicado nos ltimos anos, ao desenvolvimento de aplicaes PAF-ECF, SPED fiscal e NFe.

    Criando uma aplicao com o Lazarus e banco de dados Firebird Parte 03http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=16997

    10 de 10 04/06/2015 09:39