Avatar billede doctoren Nybegynder
03. september 2000 - 01:49 Der er 6 kommentarer og
1 løsning

Kopiering af db fil/backup

Jeg skal have lavet en backup af en Intrabase fil og bruger :

AssignFile(FromF,\'a:\\\'+dir+\'\\main.gdb\');
          Reset(FromF, 1);    { Record size = 1 }
          AssignFile(ToF,\'c:\\MainDb\\main.gdb\');    { Open output file }
          Rewrite(ToF, 1);    { Record size = 1 }
            repeat
              BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
              BlockWrite(ToF, Buf, NumRead, NumWritten);
            until (NumRead = 0) or (NumWritten <> NumRead);
              CloseFile(FromF);
              CloseFile(ToF);
, men kopien virker ikke.
Hvad er problemet ?
-- Nej jeg kan ikke bruge stifinderen til at kopiere med.
Avatar billede doctoren Nybegynder
03. september 2000 - 01:49 #1
ToF,FromF er af typen file.
Avatar billede driis Nybegynder
03. september 2000 - 01:53 #2
Hvorfor kan du ikke bare kopiere filen direkte, istedet for først at læse den og derefter skrive den igen?
Avatar billede pellelil Nybegynder
03. september 2000 - 10:34 #3
Hvad mener du med \"kopien virker ikke\" er du i stand til at kopiere den eller får du nogle fejl beskeder ?

Er der nogen der bruger databasen mens du kopiere den ? I så fald skal du muligvis kigge lidt på \"filemode\" !?

Kunne det tænkes at filen indeholder infomation om det drev/sti hvor den ligger så den kun virker derfra ?
Avatar billede doctoren Nybegynder
03. september 2000 - 17:21 #4
Nej der ligger ingen informationer om drev og sti i filen, eller det har ingen betydning, eftersom jeg kopiere den tilbage til samme sted, når jeg køre \"Restore\"
Det jeg mener med at filen ikke virker er at når jeg køre en filecompare på kopien og originalen er det forskel.
Hvordan skal jeg ellers kopiere den ?
Avatar billede delphi Nybegynder
04. september 2000 - 08:40 #5
Hvad sker der, når du åbner kopien via InterBase.  Hvis den ikke kan åbnes eller der fx. er rod i et index, så lad os få en error msg.

Delphi
Avatar billede sjensen Nybegynder
04. september 2000 - 09:44 #6
Du har da et problem med filstørrelsen hvis ikke det er (NumRead = 0) der afslutter dit repeat statement.

Hvis det er (NumWritten <> NumRead) der afslutter den mangler du at skrive de sidste bytes du har læst.

I øvrigt ville jeg bruge APIkaldet CopyFile til det istedet.

             
Avatar billede kim_friis Nybegynder
07. september 2000 - 14:03 #7
I biblioteket:
Delphi5\\Demos\\Doc\\Filmanex og i filen:
fmxutils.pas er der en procedure som hedder CopyFile som tager 2 strenge, source og destination. Den virker fint.

Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester