Software Development Kit
to the Delphi-Win32 and Free Pascal compilers
Home > Wiki > br/Persistencia

br/Persistencia

english (en) | português (br)

Contents

PressObjects OPF

Para usar o framework de persistência PressObjects, inclua pelo menos um de seus brokers na seção uses do arquivo de um projeto. PressObjects atualmente tem brokers para IBX, UIB, DOA, ZeosDBO, FBLib e SQLdb.

O artigo OPF fornece mais informação sobre o framework PressOPF.

O exemplo a seguir usa a unit 'Broker.pas' de um projeto para gerenciar as tarefas específicas do banco de dados.

unit Broker;

uses
  PressIBXBroker;

Esta declaração registra o serviço do broker IBX, mas não configura o nome do banco de dados, nome do usuário, senha e outras informações necessárias. Para tanto, o broker de conexão lhe dá acesso ao componente de conexão com o banco de dados. Você pode chegar às propriedades do componente usando uma das seguintes abordagens:

Usando um arquivo de configuracao

Para mais detalhes, veja Arquivo de configuração.

Criando o serviço de conexão

initialization
  with TPressIBXBroker.Create.Connector.Database do
  begin
    DatabaseName               := 'servername:c:\path\to\database';
    Params.Values['user_name'] := 'sysdba';
    Params.Values['password']  := 'masterkey';
    // qualquer outra propriedade de TIBDatabase
  end;

Não se preocupe em destruir o serviço, o PressObjects fará isto por você.

Sobrepondo o serviço padrão de conexão IBX

interface

type
  TMyConnectionBroker = class(TPressIBXBroker)
  protected
    procedure InitService; override;
    // qualquer outro método virtual de TPressIBXBroker ou TPressOPFBroker 
  end;

implementation

procedure TMyConnectionBroker.InitService;
begin
  inherited;
  with Connector.Database do
  begin
    DatabaseName               := 'servername:c:\path\to\database';
    Params.Values['user_name'] := 'sysdba';
    Params.Values['password']  := 'masterkey';
    // qualquer outra propriedade de TIBDatabase
  end;
end;

initialization
  TMyConnectionBroker.RegisterService(True);

Não se preocupe em criar ou destruir o serviço, o PressObjects fará isto por você, quando necessário. A declaração da seção initialization é obrigatória. Ela registra seu serviço personalizado como o serviço padrão do broker.

InstantObjects

Para usar InstantObjects (IO), pelo menos duas units devem ser adicionadas à seção uses de qualquer arquivo do projeto. Uma tem de ser 'PressInstantObjectsBroker', a outra tem de ser uma das units de broker do IO (ex: 'InstantIBX') para acesso ao banco de dados.

Notas sobre InstantObjects:

  • Navigational brokers (como InstantDBE) não são suportados.
  • Se estiver usando InstantObjects na versão 2.1 (ou do repositório SourgeForge, na revisão 702 do SVN) ou superior, certifique-se de definir a condicional 'IO2.1', na unit PressInstantObjectsBroker.pas

Para usar a persistência InstantObjects, crie um modelo IO com os mesmos nomes de classes usados no modelo PressObjects.