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

Thread: DB Backuppen en terugzetten

  1. #1
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50

    DB Backuppen en terugzetten

    Geachte slimme programmeerders

    Ik zit *ALWEER* met een probleempje,
    Ik heb een programma waarin in een Microsoft Acces Database gebruik.
    Maar nu wil ik graag een soort backup en terugzet optie in het programma
    maken. Maar ik heb echt geen id waar ik moet beginnen. Als iemand een id
    heeft zou ik graag horen

    En btw dit forum roelt, zelf opzoeken op inet gaat
    wel maar ik kom er tog vaak nie uit. Thx u all

    A Newb @ Delphi

  2. #2
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Misschien denk ik te simpel, maar misschien denk jij te moeilijk en ben ik je redder in nood : maak simpelweg een kopie van de complete MDB file?
    Qui custodiet ipsos custodes

  3. #3
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50
    Ja maar ik ben kinda n00b in delphi
    Ik wil het via een ButtonClick laten verlopen
    En ik heb geen id hoe ik dit zou moeten laten verlopen binnen in Delphi
    En hoe ik het terug zou moeten zetten, gaat ie dan nie moeilijk doen met je
    querys en dergelijke ?

  4. #4
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    Hangt ervan af, wil je bij een Restore de data combineren met de huidige data of compleet overschrijven? Als je wilt combineren dan zal je inderdaad met queries aan de slag moeten...


    Voor Backup is het vrij makkelijk, je kan gewoon het bestand kopieren naar een ander bestand. In ButtonClick zet je dan zoiets als:


    Code:
    CopyFile(PChar(BronBestandsNaam), PChar(DoelBestandsNaam), False);

    Die PChar() staat er omdat die een Windows functie is. Er zijn misschien ook Delphi functies die dat makkelijker doen (een normale string als invoer nemen), maar die ken ik eerlijk gezegd niet. De laatste False is van de parameter 'FailIfExists', als je die op True zet dan wordt het bestand niet gekopieerd als het doelbestand al bestaat...


    Hopelijk helpt dat je een beetje op weg
    Qui custodiet ipsos custodes

  5. #5
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50
    Jazeker .... hier kan ik al wat meer mee dan ik zelf kon vinden op Inet ...
    THX Dude

  6. #6
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50
    Maare Psycho of andere .... kun je een voorbeeld geven wat er ongeveer op de plaats moet staan van Bron en Doel ?? Wat het programma blijft hangen wanneer ik deze code er neer zet ---->
    CopyFile(Pchar('C:\NPO.mdb'), Pchar('D:\NPO.mdb'), False);

    Het programma loopt dan gewoon vast ... geen errors of wat maar ik moet em dan compile om het afsluiten

  7. #7
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    loopt vast? hoe groot is dat bestand? CopyFile stopt volgens mij namelijk de executie van je programma totdat het hele bestand is gekopieerd.


    Een andere optie zou dan SHFileOperation zijn, werkt iets lastiger maar geeft wel een progress venster weer zoals explorer dat doet...
    Qui custodiet ipsos custodes

  8. #8
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50
    De DB is maar 122kb groot .... Maar zou je een voorbeeld kunnen geven hoe het me die andere methode moet ?

  9. #9
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Kan er niet zelf een procedure worden geschreven?? Ik heb er hier zo eentje liggen. Geef maar een harde gil als je die wilt hebben
    !

  10. #10
    Senior Member PsychoMark's Avatar
    Join Date
    Nov 2001
    Location
    Raamsdonksveer
    Posts
    10,269
    http://delphi.about.com/library/week...erms=copy+file ?


    SHFileOperation heb ik zo gauw even geen voorbeeld van en geen zin/tijd om uit te zoeken....
    Qui custodiet ipsos custodes

  11. #11
    Member
    Join Date
    May 2002
    Location
    Emmeloord
    Posts
    50
    SVG als je een zon procedure klaar heb liggen altijd welkom

  12. #12
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    OP de site die psychomark aangaf stond toch al zo'n procedure? waarom wil je die van mij dan nog? Als je die niet wilt gebruiken, wil ik hem wel alsnog posten.
    !

  13. #13
    'Nou van ons mag je die wel plaatse hoor!

    Alle hulp is welkom!!!!


  14. #14
    notice-itter SvG's Avatar
    Join Date
    Apr 2002
    Location
    's-Hertogenbosch
    Posts
    4,865
    Code:
    Function Copyfile(Name, Outfile: String): Boolean;
    var
      source, target: TFilestream;
    begin
      source := TFilestream.create( Name,
                                    fmOpenRead or
                                    fmShareDenyNone );
      try
        target := TFilestream.Create( Outfile,
                                       fmCreate );
        try
          target.copyfrom(source, 0);
        finally
          target.free;
        end;
      finally
        source.free;
      end;
      Result := True;
    end;

    deze code werkt bij mij uitstekend. En anders deze code ( die erg veel lijkt op die van de link van Mark), waar je ook nog eens een Application.processmessages en als het moet een pointer voor een progressbar bij kunt plaatsen in de variable:


    Code:
    Function Copyfile(Fromfile, Tofile: String): Boolean;
    Var
      Ffile, Tfile: File;
      mem: Pointer;
      Size, Wrote: Dword;
      Partsize: Word;
    Const
      Transmax = 500;
    begin
       Assignfile(Ffile, Fromfile);
       Reset(FFile, 1);
    
       Size := Filesize( Ffile );
       Wrote := 0;
    
          Assignfile(Tfile, Tofile);
          Rewrite(TFile, 1);
    
       Repeat
           Partsize := Size - Wrote;
           If Partsize > Transmax then
             Partsize := Transmax;
    
           Getmem(Mem, Partsize);
    
           Blockread(Ffile, Mem^, Partsize);
           Blockwrite(Tfile, Mem^, Partsize);
    
           Wrote := Wrote + Partsize;
    
           Freemem(Mem, Partsize);
       Until
         Wrote = Size;
    
          Closefile(Tfile);
    
       Closefile(Ffile);
    end;
    en het mooie van de laatste code is ook weer dat je de snelheid kunt opvoeren
    !

  15. #15
    Nou sorrie ik ben een echte newbie maar ik kom er niet uit met de code Zou je misschien de dingen wie ik moet invullen willen aangeven?? en hoe?

    alvast bedankt

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)

Similar Threads

  1. Map/files Backuppen ?
    By sunny in forum Databases
    Replies: 7
    Last Post: 03-Oct-03, 22:01
  2. BAckuppen van Folders
    By Neocobe in forum Koffiehoek
    Replies: 9
    Last Post: 03-Jun-03, 22:32
  3. Replies: 2
    Last Post: 31-Dec-02, 11:34
  4. alleen de admin kan backuppen
    By noppwes in forum Databases
    Replies: 12
    Last Post: 24-May-02, 23:02

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
  •