Voor een bestaande applicatie ben ik op zoek naar een eenduidige methode om controles uit te voeren op gegevens die naar een database geschreven worden, nu is de controle gefragmenteerd. Laat ik het probleem iets nader uitleggen.
De applicatie waar het om gaat biedt een aantal functionaliteiten. Nu komt het voor dat eenzelfde functionaliteit op meerdere plaatsen voor, wat op zich nog niet zo erg is, maar het is ook nog eens allemaal apart geprogrammeerd. De meeste onderdelen hebben ook nog eens allemaal een eigen datamodule (dus er meerdere dataset voor dezelfde gegevens). In alle vensters wordt invoer gecontroleerd, maar die controle verschilt wel eens voor dezelfde functionaliteit. Het kan dus voorkomen dat eenzelfde invoer op een plek niet geaccepteerd wordt en op de andere wel
.
De applicatie, en bijbehorende modules, omschrijven gaat nu niet meer. Ik ben dus op zoek naar een manier om de schade te beperken en ook een oplossing die voor toekomstige projecten misschien gebruikt kan worden.
Naast Delphi werk ik ook graag met Java en de opzet van de DAO bevalt me wel. Alles via een object dat verantwoordelijk is voor de controle van de gegevens. Wat ik nu wil doen is een laag over een TDataSet heen leggen die de een interface biedt om nieuwe records aan te maken, te verwijderen en ook de verantwoordelijkheid heeft over de controle op de tabel. Ongeveer zo:
Bij de creatie wordt de dataset meegegeven waarover de Agent moet waken, de constructor nestelt zich ook in de BeforePost, AfterInsert etc event om ook de acties op te vangen die door de oude code nog niet door de Agent verlopen.
Mijn idee is door voor alle onderdelen zulke Agents te maken we nu nog kunnen ingrijpen, in de toekomst moet er een betere opzet komen voor onderdelen die op verschillende plaatsen in het programma terug komen (bijv TFrames). De agent zie ik nu als iets om de schade in oude onderdelen beperkt te houden.
Wat vinden jullie van de Agent om die alsnog een eenduidige controle te maken voor alle onderdelen, en hoe bouwen jullie met Delphi een applicatie waarin je de controle via een object laat verlopen?
De applicatie waar het om gaat biedt een aantal functionaliteiten. Nu komt het voor dat eenzelfde functionaliteit op meerdere plaatsen voor, wat op zich nog niet zo erg is, maar het is ook nog eens allemaal apart geprogrammeerd. De meeste onderdelen hebben ook nog eens allemaal een eigen datamodule (dus er meerdere dataset voor dezelfde gegevens). In alle vensters wordt invoer gecontroleerd, maar die controle verschilt wel eens voor dezelfde functionaliteit. Het kan dus voorkomen dat eenzelfde invoer op een plek niet geaccepteerd wordt en op de andere wel
De applicatie, en bijbehorende modules, omschrijven gaat nu niet meer. Ik ben dus op zoek naar een manier om de schade te beperken en ook een oplossing die voor toekomstige projecten misschien gebruikt kan worden.
Naast Delphi werk ik ook graag met Java en de opzet van de DAO bevalt me wel. Alles via een object dat verantwoordelijk is voor de controle van de gegevens. Wat ik nu wil doen is een laag over een TDataSet heen leggen die de een interface biedt om nieuwe records aan te maken, te verwijderen en ook de verantwoordelijkheid heeft over de controle op de tabel. Ongeveer zo:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
| type TRelationAgent = object(TObject) public constructor Create(ADataSet: TDataSet); function CreateRecord: Boolean; function DeleteRecord: Boolean; function Save(var Messages: TStrings): Boolean; function Validate(var Messages: TStrings): Boolean; { er mogen nog meer functies/procedures komen } end; implementation { vervolg unit } |
Bij de creatie wordt de dataset meegegeven waarover de Agent moet waken, de constructor nestelt zich ook in de BeforePost, AfterInsert etc event om ook de acties op te vangen die door de oude code nog niet door de Agent verlopen.
Mijn idee is door voor alle onderdelen zulke Agents te maken we nu nog kunnen ingrijpen, in de toekomst moet er een betere opzet komen voor onderdelen die op verschillende plaatsen in het programma terug komen (bijv TFrames). De agent zie ik nu als iets om de schade in oude onderdelen beperkt te houden.
Wat vinden jullie van de Agent om die alsnog een eenduidige controle te maken voor alle onderdelen, en hoe bouwen jullie met Delphi een applicatie waarin je de controle via een object laat verlopen?
www.fendt.com | Nikon D7100 | PS5