Fórum Interfaces, Objetos amp; OO - Problemas #285033
17/06/2005
0
Abaixo segue a estrutura da qual preciso ´interfacear´:
type IoDataBases = interface; IoDatabase = interface; IoTabelas = interface; IoTabela = interface; IoCampos = interface; IoCampo = interface; IoIndices = interface; IoIndice = interface;
Na verdade essa estrutura armazenara os dados dos diversos alias com os quais trabalhamos hj aqui, tanto em paradox quanto em IB/FB, tendo uma ´indentacao´ +- assim:
Databases
|
+Database1
|
+Tabelas
|
+Tabela1
|
+Campos
| |
| +Campo1
| +Campo2
| +Campo3
|
+Indices
|
+Indice1
Meu problema consiste em como farei para lidar com essas listas de campos e indices dentro da interface IoTabela e a IoTabelas dentro da IoDatabase, como adicionar e excluir.
Se alguem souber de qquer coisa para me ajudar, fique a vontade!
Desde ja valeu, pessoal!
Wanx
Curtir tópico
+ 0Posts
17/06/2005
Massuda
No segundo caso, acho que a implementação de IoCampos/IoIndices pode conter uma lista TInterfaceList (essa lista é derivada de TInterfacedObject, o que torna ela também uma implementação de IUnknown).
Gostei + 0
17/06/2005
Wanx
Na verdade, seria a segunda alternativa, pois o XML eu apenas tomei por base, pois seria como um ´XMLDatabinding´ para DB....
Tenho essa estrutura em XML e num banco de dados firebird, usei o XMLDatabinding para me dar uma ideia de como poderia gerar os objetos, ao inves de trabalhar diretamente com o banco, acho que seria um ´framework´ bem primario, mas seria o ideal para meu caso.
No caso de gerenciar a lista de itens contidos na implementação de IoCampos, IoIndices (e tb IoDatabases e IoTabelas) como deveria proceder com a implementação da lista TInterfaceList? Desculpe, mas eh um assunto totalmente novo para mim, e igualmente importante...
Gostei + 0
18/06/2005
Wanx
Gostei + 0
20/06/2005
Massuda
type IoCampos = interface(... function GetLista: IInterfaceList; property Lista: IInterfaceList read GetLista; ... ToCampos = class(TInterfacedObject, IoCampos) private FLista: TInterfaceList; ... public constructor Create; override; destructor Destroy; override; function GetLista: IInterfaceList; ... constructor ToCampos.Create; begin inherited; FLista := TInterfaceList.Create; ... end; destructor ToCampos.Destroy; begin FLista.Free; ... inherited; end; function ToCampos.GetLista: IInterfaceList; begin Result := FLista as IInterfaceList; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)