Um conhecimento só é válido quando compartilhado.

terça-feira, 27 de setembro de 2016

ORMBr - Select com paginação de registros.

Sabemos que banco de dados nenhum, conseguirá oferecer seus benefícios, em questão aqui sua velocidade de busca, se além de não for bem arquitetado, também for usado de forma incoerente, por um sistema mal projetado.

No ORMBr, temos o recurso de paginação para resolver isso, quando formos fazer um select de muitos registros, paginação é um recurso fundamental para que o sistema reflita a velocidade de retorno, o qual o banco de dados não faria sozinho, para definirmos esse recurso no ORMBr, usaremos um terceiro parâmetro na class de conexão.
// DBExpress de 10 em 10
oConnection := TFactoryDBExpress.Create(SQLConnection1, dnSQLite, 10); 

// ZeosLib de 50 em 50
oConnection := TFactoryZeos.Create(ZConnection1, dnSQLite, 50);

// FireDAC de 100 em 100
oConnection := TFactoryFireDAC.Create(FDConnection1, dnSQLite, 100);
Demostrei em cada tipo de fábrica que pode ser usado no ORMBr, um valor diferente, para ficar bem claro que você é quem decidirá a paginação desejada, trazendo assim agilidade nos selects de seu sistema, principalmente se seu cliente tenha uma rede precária.

segunda-feira, 26 de setembro de 2016

ORMBr - Como Incluir, Alterar e Excluir ?

Mais uma dica do ORMBr, vimos em um dos artigos escrito por mim sobre como criar uma conexão, para quem ainda não leu acesse ORMBr - Como criar uma conexão ?
Vamos hoje demonstrar o que temos que fazer para que possamos ter um DBGrid, onde nesse poderemos fazer Inclusão, Alteração e Exclusão de uma unica tabela no banco de dados, esse exemplo estará usando o recurso mais simples do ORMBr.
1o Passo: Criar a conexão com já mostrado no link como criar uma conexão.
2o Passo: Adiciona em seu form um TClientDataSet, (podemos usar o TFDMemTable), mas vou usar o TClientDataSet, pois este, está em todas as versões do Delphi desde a versão 3, adicione também um TDataSource, em seguida configure suas propriedades.
3o Passo:
Adicione na clausula USES, as units:
ormbr.dependency.injection.clientdataset,
ormbr.dependecny.interfaces,
ormbr.factory.dbexpress;  // <= Aqui a fábrica de conexão escolhida por você.
4o Passo: Crie seu modelo, como exemplo abaixo:
unit ormbr.model.client;

interface

uses
  Classes, 
  DB, 
  SysUtils, 
  Generics.Collections, 
  /// orm 
  ormbr.mapping.attributes, 
  ormbr.mapping.classes,
  ormbr.types.nullable,
  ormbr.types.lazy,
  ormbr.types.mapping,
  ormbr.mapping.register;

type
  [Entity]
  [Table('client','')]
  [PrimaryKey('client_id', 'Chave primária')]
  [Indexe('idx_client_name','client_name')]
  Tclient = class
  private
    { Private declarations }
    Fclient_id: Integer;
    Fclient_name: String;
    Fclient_name_: String;
  public
    { Public declarations }
    [Restrictions([NoUpdate, NotNull])]
    [Column('client_id', ftInteger)]
    [Dictionary('client_id','Mensagem de validação','','','',taCenter)]
    property client_id: Integer Index 0 read Fclient_id write Fclient_id;

    [Column('client_name', ftString, 40)]
    [Dictionary('client_name','Mensagem de validação','','','',taLeftJustify)]
    property client_name: String Index 1 read Fclient_name write Fclient_name;
  end;

implementation

initialization
  TRegisterClass.RegisterEntity(Tclient);

end.
5o Passo: Defina uma variável do tipo IContainerDataSet<T>, onde <T> deve ser o tipo do modelo que será usado, exemplo IContainerDataSet<Tclient>, veja o código exemplo:
oClient: TContainerClientDataSet<Tclient>;
6o Passo: No Create do Form, instancie a variável definida, passando para ela a variável de conexão criada, e o TClientDataSet que foi adicionado no inicio, veja o exemplo:
oClient := TContainerTClientDataSet<Tclient>.Create(oConn, ClientDataSet1);
7o Passo: Abra a tabela, chamando o método Open, veja o exemplo:
oClient.DataSet.Open;
Com esse código você já está hapto a Inserir, Alterar e Excluir registro no banco de dados, aqui vocês poderão pensar, o Delphi faz o mesmo até de forma mais simples, mas o diferencial está no modelo, pois se observarem, não pedi para adicionar TFields no TClientDataSet, os TFields adicionados em designer são um caos na vida do desenvolvedor para manutenção, e no ORMBr os TFields são adicionados em runtime, e todas as características de cada TFields é passada usando o atributo Dictionary() que os parâmetros são:
property ConstraintErrorMessage: string read FConstraintErrorMessage write 
FConstraintErrorMessage;
property DefaultExpression: string read FDefaultExpression write 
FDefaultExpression;
property DisplayFormat: string read FDisplayFormat write FDisplayFormat;
property EditMask: string read FEditMask write FEditMask;
property Alignment: TAlignment read FAlignment write FAlignment;
É isso ai, fiquem atentos e aguardem as próximas dicas.

SAC Automação Delphi e Lazarus

SAC Automação Delphi e Lazarus
Assine nosso SAC Automação Delphi e Lazarus para ter suporte técnico especializado em desenvolvimento

Quem sou eu

Minha foto

Proprietário/Administrador de Empresa em TI (Tecsis Informática)
  • Autor dos projetos OpenSource ORMBr, e DBCBr
  • Autor dos componentes ACBrInstall, ACBrSped, ACBrPaf, ACBrInStore, ACBrDownload.

Total de visualizações

Postagem em destaque

ORMBr - Mapeamento objeto-relacional

Mapeamento objeto-relacional ( ou ORM, do inglês: Object-relational mapping ) é uma técnica de desenvolvimento utilizada para reduzir...

Todo os direitos reservados.. Tecnologia do Blogger.

Seguidores

Google+ Seguindores