Results 1 to 9 of 9

Thread: Delphi i.c.m. nieuwe Access database

  1. #1
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747

    Delphi i.c.m. nieuwe Access database

    Ik merk op het forum dat de access database best wel populair is om gebruik te maken van een simpele database met query ondersteuning. Maar wat ik mij eigenlijk afvraag: Hoe kom je aan die database? Je zal zeggen dat men altijd een microsoft office pro pakket heeft en daarmee een database aanmaken. Maar waarom zal je dan gebruik maken van Delphi, als je Access tot je beschikking hebt.
    Hoe hebben andere gebruikers, die geen microsoft office hebben, dan toch zo'n database aangemaakt. Zijn daar externe tools voor? Ik weet dat er wel componenten zijn, waarmee je een Access database kan aanmaken, maar deze heb ik op D2007 / D2009 nog steeds niet aan de praat heb gekregen.

    Wat zijn de voordelen van Access database i.c.m Delphi
    Delphi is great. Lazarus is more powerfull

  2. #2
    Je kunt natuurlijk een database meeleveren. Daarin kun je dan wel weer tabellen maken. Je kunt ook de Jet engine gebruiken om databases mee te maken. Diezelfde Jet engine gebruik je ook om Access databases te comprimeren (laatst een thread over geweest).

    Zowel Jet als de Access drivers (ODBC en ADO) zijn volgens mij standaard aanwezig op elke Windows PC vanaf versie 2000.

    Dat is dan ook meteen het voordeel: Je hebt geen Access nodig, je hebt geen licentie nodig, je hebt geen database server nodig, je hebt geen DBA'er nodig en hoeft zelf maar een relatief beperkte kennis van databases te hebben.
    Je hebt een file based systeem dat wel vrij krachtig is en redelijk goed multi-user werkt, zolang je het hebt over een klein aantal gebruikers. (5 'schrijvers', als je alleen wilt lezen dan kan dat met wel meer mensen tegelijk).

    Al met al is Access een prima 'opstart' database en is daardoor ook prima te gebruiken voor mensen die net iets meer willen dan een adreslijst in Excel (en dat zou eigenlijk iedereen moeten zijn).
    1+1=b

  3. #3
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Het is mooi dat (bijna) elke window versie deze database aankan. Maar hoe kan ik een nieuwe access database (gebruik) maken als ik Alleen Delphi heb. Er moet dan toch ook een ander manier zijn om deze database te kunnen aanmaken zonder telkens afhankelijk te zijn van Microsoft?
    Delphi is great. Lazarus is more powerfull

  4. #4
    Christophe
    Join Date
    Jan 2004
    Location
    Belgium, West-Vlaanderen, Nieuwkerke
    Posts
    459
    bij sql server heb je een msde versie om bij klanten te plaatsen.
    Bij access heb je ook een versie voor klanten. Weet nu niet of dit 'access standalone' noemt.

  5. #5
    Senior Member
    Join Date
    Aug 2004
    Location
    Rotterdam
    Posts
    151
    Ik heb het ooit ergens gelezen.
    Je kunt een ADO connectie maken naar een (nog) niet bestaande database.
    Via SQL commands kun je daar dan tabellen e.d. aan toevoegen met CREATE.

  6. #6
    Misschien heb je dat hier gelezen. Als ik de code daar vertaal, dan moet dat volgens mij zoiets worden voor ADO(X):
    Delphi Code:
    1. Const Jet10 = '1';
    2. Const Jet11 = '2';
    3. Const Jet20 = '3';
    4. Const Jet3x = '4';
    5. Const Jet4x = '5';
    6.  
    7. procedure CreateNewMDB(FileName, Format: string);
    8. var
    9.   Catalog: OleVariant;
    10. begin
    11.   Catalog := CreateOleObject('ADOX.Catalog');
    12.   Catalog.Create(Format('Provider=Microsoft.Jet.OLEDB.4.0;' +
    13.         'Jet OLEDB:Engine Type=%s;Data Source=%s', [Format, FileName]));
    14. end;
    15.  
    16. // En dan voor een Access 2000+ database aanroepen met:
    17. CreateNewMDB('G:\a2000.mdb', Jet4x);

    Of de DAO/MDAC manier:
    Delphi Code:
    1. Const dbVersion10 = 1;
    2. Const dbVersion11 = 8;
    3. Const dbVersion20 = 16;
    4. Const dbVersion30 = 32;
    5. Const dbVersion40 = 64;
    6.  
    7. procedure CreateNewMDB(FileName: string; Format: Integer);
    8. var
    9.   Engine: OleVariant;
    10. begin
    11.   Engine := CreateObject('DAO.DBEngine.36');
    12.   Engine.CreateDatabase(FileName, ';LANGID=0x0409;CP=1252;COUNTRY=0', Format);
    13. end;
    14.  
    15. //Create Access2000 database
    16. CreateNewMDB('G:\a2000.mdb', dbVersion40);
    Ik moet eerlijk bekennen dat ik het uit het hoofd heb (over)getypt zonder het te testen, maar dit is wel letterlijk wat daar staat, al blijft het altijd duimen bij VB of zo'n vertaling letterlijk klopt, met name vanwege de weak typing die wordt toegepast.
    1+1=b

  7. #7
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Deze had ik nog niet gezien, maar dat komt omdat ik alleen heb gezocht met o.a. de keyword delphi. Ik ga eens kijken of het werkt. Ondanks alles ben ik toch aan het proberen om de msadox.dll om te zetten naar de goede componentnamen.
    Maar toch bedankt voor de search
    Delphi is great. Lazarus is more powerfull

  8. #8
    Je kunt je de moeite denk ik besparen. Als ik mijn zoekopdracht uitbreid met 'delphi', zodat het wordt: 'create access database ado delphi' dan vind ik (wederom op About) een tweedelig artikel over het importeren van en gebruik van de ADOX type library. Je hebt er dan al direct componenten van.
    1+1=b

  9. #9
    Ja, het is altijd weer spannend met Access en ik moet zeggen dat ik er een beetje haat / liefde verhouding mee heb. Als programmeur wil je er eigenlijk niet mee werken, het heeft gewoon teveel beperkingen. Aan de andere kant werk ik momenteel aan een project waar zo'n 20 mensen tegelijkertijd aan diverse Access databases werken. Het voelt een beetje als 10 bordjes op een stokje in de lucht houden, maar het draait wel. Maar je bent veel tijd kwijt aan dingen waar je eigenlijk niet mee bezig wilt zijn.

    Waarom dan toch de (kleine) liefde? Het is allemaal zo lekker simpel. De gebruiker kan als het nodig is zelf even Access opstarten, in de database zijn ding doen en eventueel zelfs zijn eigen rapportages maken.

    En met linked tables naar SQL server gaat er natuurlijk weer een wereld open
    Marcel

Thread Information

Users Browsing this Thread

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

Tags for this Thread

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
  •