Page 1 of 3 1 2 3 LastLast
Results 1 to 15 of 39

Thread: Database vraagjes

  1. #1
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92

    Database vraagjes

    Omdat ik met Lazarus programmeer heb ik de vraag hier neer gezet en niet bij de Databases.

    Ik heb een beetje ervaring in Delphi maar ben nieuw in Lazarus.
    Ook heb ik nog niet met aparte forms gewerkt.

    Ik wil een programma (of 2 aparte) gaan maken dat gebruik maakt van een database.
    Het beste kan ik dit uitleggen met een Leraar/Leerling voorbeeld.

    Form1/programma1 (voor de leraar) moet hiermee een database kunnen bewerken (wissen/aanvullen/veranderen enz.).
    De records in deze database's bestaan altijd uit 5 simpele tekstvelden verder komt er niets speciaals bij voor het database gedeelte.
    Wel moet de leraar dit nog even kunnen nakijken of het goed werkt bij het andere programma/Form.

    Form2/programma2 (voor de leerling) moet hiermee kunnen oefenen, dus deze hoeft alleen de database te kunnen lezen in een willekeurige volgorde.
    Het is wel handig als ook de leerling de database zou kunnen bewerken om zo dingen te kunnen oefenen die hij nodig vindt.

    Zou ik dit het beste met 2 Forms kunnen maken of met 2 aparte programma's evt. met een startprogramma dat deze programma's aanroept ?
    Indien ik dit met Forms doe kan ik in Form2 dan procedures aanroepen van Form1 ?
    Dikwijls zie ik een broncode met meerde pascal-bestanden, horen deze dan altijd bij een aparte form of zijn dit weer procedures die voor meerdere programma's gebruikt worden ?
    Welke soort database kan ik het beste nemen als ik kijk naar het simpelste programmeren ?

    Bij voorbaat mijn dank.

  2. #2
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Hallo,

    Heb je al eens tussen de voorbeelden gekeken die je bij lazarus gekregen heb?
    Daar staan een aantal eenvoudige database toepassingen tussen.
    En of je nu 2 schermen en/of er 2 programma's van wilt maken is een kwestie van smaak.
    Ik zou zeggen 2 programma's,. onderschat een leerling niet... die wil toch even op de stoel van de leraar zitten om zijn eigen opdrachten goed te keuren :-)
    Met 2 programma's hoef je minder aan afscherming van de gegevens te doen.

    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  3. #3
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Bedankt voor de reactie.

    Ik heb ondertussen bij de voorbeelden gekeken en het lijkt me ook wel wat om een DBGrid naar voren te laten komen als de data bewerkt moet worden.
    Kan ik bij een DBGrid in de vijfde kolom code onderzetten ?
    Het is n.l. de bedoeling dat hier de naam van een foto/tekening in komt en als ik hier een scherm met alle foto's/tekeningen kan laten zien waar er 1 uit wordt gekozen en die naam dan in de vijfde kolom komt is het gemakkelijker dan dat er elke keer de naam ingevuld moet worden.

    Dat de leerlingen toegang hebben tot de data is geen ramp.
    Het is de bedoeling dat zij het mee naar huis krijgen om te kunnen oefenen en niet voor een toets of examen, dus als zij hiermee gaan rotzooien dan hebben zij zichzelf er mee.

  4. #4
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Over welk demo programma heb je het ?
    Normaal gesproken bepaal je zelf het aantal kolommen, aan de hand van de gegevens die je in de database wilt plaatsen.

    Wil je alle gegevens bij elkaar houden en ook nog mobiel maken.
    Moet je goed kijken naar wat voor database je wilt.

    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  5. #5
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Ik heb gekeken bij examples>database>dblookup waar de verschillende componenten op elkaar reageren.
    En bij examples>gridexamples>gridcelleditor waar bij de derde cel een afrolmenu komt, dit is wel een stringgrid.

    Dus ik zou verwachten dat ik in een Tdbgrid onder de vijfde cel ook code kan zetten.

  6. #6
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Okay

    Na heel wat zoeken lijkt mij een .DBF bestand het makkelijkst te programmeren.
    (Examples\address_book)
    Nu had ik hier wat vraagjes over.

    1/ In de grid komen verschillende records te staan, maar hoe laad ik nu een willekeurig record in DBLabels (Read xxx of zoiets)?
    2/ Ooit eens een database gemaakt in Basic. Hier had ik een apart veld om aan te geven dat een record gewist was en met een aparte procedure kon ik het bestand onderhouden (gewiste records echt verwijderen). Gebeurd dit hier automatisch ?
    3/ Moet hier een PRIMAIRY KEY in komen ?
    4/ Omdat de tekststrings nogal lang worden.. is er misschien een mogelijkheid voor wordwrap in een editveld ?
    5/ Hoe kan het programma weten hoeveel records (de gewiste niet meegeteld) er in een bestand zitten ?

    Bij voorbaat mijn dank.

  7. #7
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Kijk eens naar Absolute Database, zonder reclame te maken, dit pakket sluit redelijk aan bij jouw wensen, ook hier weer genoeg eenvoudige voorbeeldjes.
    En in de help kan je ook het e.a. vinden over het opzetten van een database.

    Peter
    10.4.2, Delphi2010, of Lazarus 2.2.0

  8. #8
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Beste Peter
    Bedankt voor de reactie

    Ik zou hier niet weten welke versie compatible is met Lazarus 0.9.30.
    Ook lijkt het mij dat programma's die hiermee gemaakt zijn niet verspreid mogen worden en € 99,- vind ik nogal wat.

  9. #9
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Quote Originally Posted by Kees55 View Post
    Okay

    Na heel wat zoeken lijkt mij een .DBF bestand het makkelijkst te programmeren.
    (Examples\address_book)
    Let op. Ik heb van Marcov een tijd geleden gehoord dat DBF, net zo als in Delphi, op stervennaar dood is. TDBF wordt niet meer ontwikkeld en zla in de toekomst niet goed meer gaan werken als Lazarus unicode gaat gebruiken. Als dat niet zo is, zal Marcov dat tegenspreken.

    Nu had ik hier wat vraagjes over.

    1/ In de grid komen verschillende records te staan, maar hoe laad ik nu een willekeurig record in DBLabels (Read xxx of zoiets)?
    Ik neem aan dat je nu gebruik maakt van de scrollbar van DBgrid. Je kan n.l. ook een TDBNavigator neer zetten. Daarmee maak/ wijzig/wis je records aan en kan je ook bladeren. De TDatasource doet eigenlijk het werk voor je. Als je die navigator gebruikt (of een button hebt gemaakt met daar in table.next), zal de DBLabels worden gevuld met data van dat record.
    2/ Ooit eens een database gemaakt in Basic. Hier had ik een apart veld om aan te geven dat een record gewist was en met een aparte procedure kon ik het bestand onderhouden (gewiste records echt verwijderen). Gebeurt dit hier automatisch ?
    Zoals in DBASE III en IV wordt er een vlag gezet, om aan te geven dat dat record niet meer meedoet in de dataset. Ik weet niet of TDBF het kan, maar in Delphi kan je een pack procedure maken, die alle gewiste records verwijdert uit de tabel.
    3/ Moet hier een PRIMAIRY KEY in komen ?
    Volgens mij ondersteunt DBF geen primary key
    4/ Omdat de tekststrings nogal lang worden.. is er misschien een mogelijkheid voor wordwrap in een editveld ?
    Nee. Daarvoor wordt gebruik gemaakt van DBMemo, waarmee het typeveld MEMO wordt gelezen.
    5/ Hoe kan het programma weten hoeveel records (de gewiste niet meegeteld) er in een bestand zitten ?
    Als TDBF zijn zaakjes goed heeft geregeld, geeft de property recordcount aan hoeveel records er in een tabel staan exclusief de gewiste records.


    Welke versie Lazarus gebruik je? De beste manier om up to date database te maken is SQLite. Deze database ligt dichtbij ACCESS en is zowel met TTable of TQuery te gebruiken. Met Lazarus 0.9.3 kan je makkelijk ZEOS 6.6.6 installeren. Daarmee kan je SQLite databases (en andere soorten) benaderen. De standaard databasetools van Lazarus kunnen dat ook, maar vond ik (op het moment dat ik er mee ging werken) niet echt stabiel.


    Quote Originally Posted by Wok
    Kijk eens naar Absolute Database, zonder reclame te maken, dit pakket sluit redelijk aan bij jouw wensen,
    Dit pakket is niet geschikt voor Lazarus.
    Delphi is great. Lazarus is more powerfull

  10. #10
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Bedankt voor de reactie.

    Ik neem aan dat je nu gebruik maakt van de scrollbar van DBgrid. Je kan n.l. ook een TDBNavigator neer zetten. Daarmee maak/ wijzig/wis je records aan en kan je ook bladeren. De TDatasource doet eigenlijk het werk voor je. Als je die navigator gebruikt (of een button hebt gemaakt met daar in table.next), zal de DBLabels worden gevuld met data van dat record.
    Het gaat hier om een toets af te nemen van leerlingen , dus hier wilde ik iets van
    Code:
    A=:Random (Totaalaantal records)
    Read A
    Nee. Daarvoor wordt gebruik gemaakt van DBMemo, waarmee het typeveld MEMO wordt gelezen.
    Dat betekent dat ik 4 van de 5 strings een MEMO moet maken want deze komen zo ca. op 160 karakters.

    Met Lazarus 0.9.3 kan je makkelijk ZEOS 6.6.6 installeren. Daarmee kan je SQLite databases (en andere soorten) benaderen.
    Kan ik hier een standalone programma mee maken ?

  11. #11
    Absolute Database is inderdaad een prima database, maar niet voor Lazarus.
    De auteur heeft ook geen behoefte om een Lazarus/FPC versie uit te brengen.
    SQLite is ook een prima database en makkelijk te gebruiken via Lazarus.

    Jan

  12. #12
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Quote Originally Posted by Kees55 View Post
    Kan ik hier een standalone programma mee maken ?
    Zeker wel. SQLite is een losstaand bestand, die je overal kan meenemen.
    Zelfs kan je er een client/server van maken, maar hoe stabiel het dan is weet ik niet.

    Op dit moment ben ik via Lazarus /ZEOS / SQLLite een een programma aan het maken, die een geschiedenis bevat van al mijn boeken, die ik van de bieb heb geleend.
    Delphi is great. Lazarus is more powerfull

  13. #13
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Zeos geinstalleerd, maar bij het opstarten kan Lazarus de packages niet vinden.

    Wat heb ik verkeerd gedaan ?

  14. #14
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Hoe heb je zeos geïnstalleerd? Via install packages in het menu? Heb je gebruik gemaakt van de lazarus folder van ZEOSLIB?
    Delphi is great. Lazarus is more powerfull

  15. #15
    Member
    Join Date
    Mar 2008
    Location
    Etten-Leur
    Posts
    92
    Ik heb het geinstalleerd via package > Open package file (*.LPK)
    Open ZComponent.lpk
    Click install
    Click Yes to rebuild

    Is er een speciale plaats waar de pakketten moeten staan ?

    Ik heb de folder van Lazarus gebruikt.

    Edit

    Er komt een melding dat Zcomponent.lpk is geinstalleerd maar er is geen geldig .lpk gevonden.
    Hierna komt hij nog 4 keer dat er andere packeges moeten worden geinstalleerd


    Bij packages > configureer packages staat
    Beschrijving/Samenvatting: Het pakket is geinstalleerd, maar het lpk-bestand niet gevonden. Alle componenten hieruit zijn gedeactiveed. Herstel dit alstublieft.

    Als ik Zcomponent hier wil de-installeren zegt hij dat dit niet kan omdat deze onderdeel is van de IDE.
    Last edited by Kees55; 08-Feb-12 at 17:44.

Page 1 of 3 1 2 3 LastLast

Thread Information

Users Browsing this Thread

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

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
  •