Buscar

Curso Delphi – Criando uma Aplicação do Início ao fim - Parte 7

nome

Rubens Antunes

Rubens Antunes, Autor do Livro Delphi Faça uma Aplicação Comercial e Desenvolvedor Delphi desde de 2004.

Curso Delphi – Criando uma Aplicação do Início ao fim - Parte 7

Campo Auto incremento e Captura de erros

Olá, nesse artigo estarei escrevendo sobre campo auto incremento, como criar e como utilizar esse campo. Podemos perceber que o campo código do cliente precisa ser colocado na mão, ou seja, não existe nenhum método para alimentar o código automaticamente, para isso iremos utilizar o generators.

Abra o IbExpert e selecione o nosso banco de dados SisCom.fdb e logo depois clique em generators e tecle Ctrl+N ele criará um novo generator, em name mude para Gen_IDCliente e em value coloque 100, pronto, o nosso generator já está criado e alimentado, a nossa contagem começará de 100. Precisamos de uma tabela que sirva para armazenar o valor temporariamente, crie um nova tabela com o nome de código e campo ID do tipo integer, coloque apenas um registro com número 1.

Retornando ao Delphi, abra o Data Module dmCliente e adicione o componente SqldataSet da paleta DbExpress e altere as seguintes propriedades:


Esta instrução SQL nos retorna o último generator mais 1 através do Gen_ID. Dê dois clique no sdsNovoID e adicione o campo NOVOID no Fields editor. Selecione o componente cdsCadCliente e vá no evento OnNewRecord e digita o seguinte código:

procedure TdmCliente.cdsCadClienteNewRecord(DataSet: TDataSet);
begin
sdsNovoID.Close;
sdsNovoID.Open;
cdsCadClienteIDCLIENTE.AsInteger:=sdsNovoIDNOVOID.AsInteger;
end;

Como podemos perceber, criar um campo auto incremento é muito simples, ou seja, o generator armazena um determinado valor e este select apenas busca esse valor e acrescentar mais 1.

Captura de Erros

O ClientDataSet tem erros silenciosos, ou seja, ele deixa de gravar e não avisa, para isso precisamos fazer que ele nos avise. Iremos utilizar o evento OnReconcileError do ClientDataset, vamos fazer um exemplo selecione o cdscadcliente e no Field editor aberto selecione o campo ENDERECO e passe para true a propriedade Required, ou seja, estamos exigindo que o usuário não deixe em branco o campo ENDERECO, agora com cdscadCliente selecionado vá no evento OnReconcileError e coloque o seguinte código:

procedure TdmCliente.cdsCadClienteReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
    ShowMessage(E.Message);
end;

Posicione o mouse em cima do ShowMessage e tecle Ctrl+Shift+A e coloque a unit Dialogs em nosso projeto.

Execute a aplicação e inclua um novo cliente sem colocar dado nenhum no endereço ele dará a mensagem de erro:


Existe melhores maneiras de tratar os erros, ou seja, traduzindo as mensagens para português, mas a intenção deste artigo é apenas você conhecer como tratar erros.

Conclusão: Neste artigo estou mostrando como criar um campo auto incremento e como utilizá-lo e como tratar erros no ClientDataSet, no próximo artigo estarei demonstrando como criar Relacionamentos. Abraço e até lá.

Publicidade

Vote no artigo




Quantidade de votos: 2 votos
Aceitação: 20%


Detalhes do artigo

Categoria: Banco de dados
Adicionado dia: 11/01/10
Por: Rubens Antunes
Visualizado: 46371 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009