Results 1 to 6 of 6

Thread: DataModule ?

  1. #1
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127

    Question

    Hallo aan iedereen,
    Ik was benieuwd of iemand iets van het fenomeen 'DataModule' af weet, want ik weet er in iedergeval niets van.
    Vandaar ook deze vraag kan iemand mij vertellen wat deze doet en wat het nut er van is, en uiteraard ook de voordelen en nadelen hiervan.
    Is dit een plekje of zo waar alle var en const centraal worden opgeslagen ?
    Ik ben benieuwd wat jullie mij hier over kunnen vertellen.

    Alvast bedankt.
    Ricky Ricardo a.k.a. Richard.
    RLD

  2. #2
    Hee Ricky,

    Datamodules gebruik je (zoals de naam al aangeeft) voor data. Om programma's gestructureerd en goed onderhoudbaar te houden is het belangrijk dat je een goede scheiding maakt tussen user-interface, logica en data. User-interface plaats je op formulieren, maar dan ook alleen de user-interface, logica en data plaats je op datamodules.

    Laat ik een voorbeeld geven: stel je hebt een tabel waarin je een postcode opslaat. De postcode moet altijd in het formaat 9999 AA worden opgeslagen en dat regel je in je dataset. Als je nou je dataset op een formulier zet dan kun je de data dus alleen maar via dat formulier opslaan. Heb je nou een andere routine die de data bijvoorbeeld uit een ascii file leest dan moet je weer opnieuw programmeren dat die postcode in het juiste formaat staat. Had je nou die tabel op een datamodule staan dan hadden beide methodes dezelfde dataset kunnen gebruiken, je weet dan zeker dat de postcode altijd op dezelfde manier wordt geformateerd.

    Zo'n regel dat een postcode altijd in dat formaat moet worden opgeslagen noemen we een business rule (in goed Nederlands). Je kunt je voorstellen dat een groot programma aardig wat van die business rules heeft. Het is dan belangrijk dat je die altijd maar één keer programmeert, in een datamodule dus.

    Maar een datamodule gebruik je niet alleen voor data uit een database. Stel dat je een ini-file (of registry) hebt met instellingen voor je programma. Maak dan een datamodule die deze data inleest en wegschrijft en je hebt één centraal punt waar je formulieren dan hun data vandaan halen, nl. vanuit die ene datamodule.

    Is het nu een beetje duidelijk hoe je met datamodules omgaat?
    Marcel

  3. #3
    5th member of nldelphi
    Join Date
    Mar 2001
    Location
    Alkmaar
    Posts
    2,127

    Talking Ja absoluut duidelijk.

    Bedankt voor de reply, inderdaad was het al 'zoiets' als wat ik dacht.
    Het is inderdaad handig en gestructueerd om het op deze manier te doen, dus voila toegepast in mijn huidige project.

    Als je nog meer handige of nuttige cq. belangrijke tips over componenten of objecten hebt, ze zijn ALTIJD welkom ben tenslotte ook maar een Newbie/Rookie die helemaal vanaf het begin te werk moet gaan.
    RLD

  4. #4
    Absoluut, nog tientallen, probleem is alleen waar begin je? Dan heb je meteen één van de bestaansredenen van NLDelphi: die tips komen er vanzelf.
    Marcel

  5. #5
    Registered User
    Join Date
    Feb 2002
    Location
    Arnhem
    Posts
    15
    Toch moet je errug uitkijken hoe je omgaat met de datamodule. Ik ken voorbeelden waarbij het gebruik van datamodules ook errug onhandig kunnen zijn.

    Als je 2 MDI Children in je applicatie open hebt die gebruik maken van dezelfde datamodule krijg je problemen als je dezelfde queries of tables gebruikt bij de 2 schermen. Verander je wat in het ene scherm, zal het in het andere scherm ook veranderen. Een collega van me creëerde voor 2 verschillende schermen 2x dezelfde datamodule... en een fouten wat dat creëerde. Blijkbaar vind Delphi zelf 2 instanties van dezelfde datamodule toch niet zo leuk. Errug onlogische fouten kwamen hieruit.

  6. #6
    Dat gebeurt meestal doordat je de designtime gezette links niet opnieuw zet. Als je een link van een DataSource naar MyDataModule.Table hebt en je maakt een tweede TMyDataModule aan moet je er wel op letten dat je DataSource.DataSet wordt aangepast. Doe je niets, dan wordt de eerste datamodule gebruikt en dat wordt inderdaad erg verwarrend.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Probleem met DataModule + with
    By MMSoft in forum Databases
    Replies: 9
    Last Post: 13-Jun-04, 14:58
  2. datamodule en ondatachange
    By arnold in forum Databases
    Replies: 10
    Last Post: 04-Apr-04, 04:21
  3. Progress datamodule bijhouden vanaf mainform
    By Tanner in forum Algemeen
    Replies: 4
    Last Post: 25-Feb-04, 11:47
  4. installatie nieuwe datamodule
    By Adriaan in forum Algemeen
    Replies: 9
    Last Post: 08-Feb-04, 20:41

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •