José poderia me ajudar com automapping
Consegui fazer as classes lerem os dados do banco mas não consigo
gravar
os dados segue abaixo a minha unit...script das tabelas e o
autommaping que fiz
CREATE TABLE TBPESSOAS(
OID INTEGER NOT NULL,
NOME VARCHAR(20),
SOBRENOME VARCHAR(60),
CONSTRAINT PK_TBPESSOAS PRIMARY KEY(OID)
);
CREATE TABLE TBTELEFONES(
OID INTEGER NOT NULL,
TBPESSOAS_OID INTEGER NOT NULL,
NUMERO VARCHAR(25),
CONSTRAINT PK_TBTELEFONES PRIMARY KEY(OID)
);
ALTER TABLE TBTELEFONES ADD CONSTRAINT FK_TBTELEFONES_CODPESSOA
FOREIGN KEY (TBPESSOAS_OID) REFERENCES TBPESSOAS(OID) ON DELETE
CASCADE ;
TMapeamento = class
public
class procedure RegistrarMapeamentos;
end;
{ Classe para listar os telefones }
TTelefones = class(TtiObjectList)
private
function getItems(i : Integer): TTelefone; reintroduce;
procedure SetItems(i: Integer; const value :
TTelefone);reintroduce;
public
property Items[i:Integer]: TTelefone read getItems write
SetItems;
procedure Add(AObject : TTelefone);reintroduce;
procedure Clear;override;
procedure Read;override;
procedure Save;override;
function Find(str : String): TTelefone; reintroduce;
end;
TTelefone = class(TtiObject)
private
FNumero : String;
procedure setNumero(const strNumero : String);
function getNumero : String;
protected
procedure SetOwner(const value : TTelefones); reintroduce;
function GetOwner: TTelefones; reintroduce;
public
constructor create; override;
destructor destroy; override;
property Owner: TTelefones read getOwner write SetOwner;
published
property Numero: String read getNumero write SetNumero;
end;
{ Classe para listar as Pessoas }
TPessoas = class(TtiObjectList)
private
function getItems(i : Integer): TPessoa; reintroduce;
procedure SetItems(i: Integer; const value :
TPessoa);reintroduce;
public
property Items[i:Integer]: TPessoa read getItems write
SetItems;
procedure Add(AObject : TPessoa);reintroduce;
procedure Clear;override;
procedure Read;override;
procedure Save;override;
function Find(str : String): TPessoa; reintroduce;
end;
TPessoa = class(TtiObject)
private
FNome : String;
procedure setNome(const strNome : String);
function getNome : String;
protected
procedure SetOwner(const value : TPessoas); reintroduce;
function GetOwner: TPessoas; reintroduce;
public
constructor create; override;
destructor destroy; override;
property Owner: TPessoas read getOwner write SetOwner;
published
property Nome: String read getNome write SetNome;
end;
implementation
{ TMapeamento }
class procedure TMapeamento.RegistrarMapeamentos;
begin
with GTIOPFManager.ClassDBMappingMgr do
begin
{ Telefones }
RegisterMapping( TTelefone, 'TBTELEFONES', 'OID', 'OID',
[pktDB] );
RegisterMapping( TTelefone, 'TBTELEFONES', 'Numero', 'NUMERO' );
RegisterCollection( TTelefones, TTelefone );
{ Pessoas }
RegisterMapping( TPessoa, 'TBPESSOAS', 'OID', 'OID', [pktDB] );
RegisterMapping( TPessoa, 'TBPESSOAS', 'Nome', 'Nome' );
RegisterCollection( TPessoas, TPessoa );
end;
end;
{ TTelefones }
procedure TTelefones.Add(AObject: TTelefone);
begin
{chama método herdado Add}
inherited Add(AObject);
end;
procedure TTelefones.Clear;
begin
inherited;
//
end;
function TTelefones.Find(str: String): TTelefone;
begin
//
end;
function TTelefones.getItems(i: Integer): TTelefone;
begin
//
end;
procedure TTelefones.Read;
begin
inherited;
//
end;
procedure TTelefones.Save;
begin
inherited;
//
end;
procedure TTelefones.SetItems(i: Integer; const value: TTelefone);
begin
//
end;
{ TTelefone }
constructor TTelefone.create;
begin
inherited;
//
end;
destructor TTelefone.destroy;
begin
//
inherited;
end;
function TTelefone.getNumero: String;
begin
//
end;
function TTelefone.GetOwner: TTelefones;
begin
//
end;
procedure TTelefone.setNumero(const strNumero: String);
begin
//
end;
procedure TTelefone.SetOwner(const value: TTelefones);
begin
//
end;
{ TPessoa }
constructor TPessoa.create;
begin
inherited;
//
end;
destructor TPessoa.destroy;
begin
//
inherited;
end;
function TPessoa.getNome: String;
begin
//
end;
function TPessoa.GetOwner: TPessoas;
begin
//
end;
procedure TPessoa.setNome(const strNome: String);
begin
//
end;
procedure TPessoa.SetOwner(const value: TPessoas);
begin
//
end;
{ TPessoas }
procedure TPessoas.Add(AObject: TPessoa);
begin
inherited Add(AObject);
end;
procedure TPessoas.Clear;
begin
inherited;
//
end;
function TPessoas.Find(str: String): TPessoa;
begin
//
end;
function TPessoas.getItems(i: Integer): TPessoa;
begin
//
end;
procedure TPessoas.Read;
begin
inherited;
//
end;
procedure TPessoas.Save;
begin
inherited;
//
end;
procedure TPessoas.SetItems(i: Integer; const value: TPessoa);
begin
//
end;