Registriert seit: 7. Jan 2005
29 Beiträge
|
Re: Datenbankbackup (Paradox) lokal auf dem Rechner
19. Jan 2005, 12:21
Delphi-Quellcode:
with Daten do
begin
tKunde.Close;
tLehrer.Close;
tAnrede.Close;
tLehrangebot.Close;
tStufe.Close;
tFach.Close;
tSchulform.Close;
tOrtVorwahl.Close;
tVermittlung.Close;
tModul.Close;
tVKL.Close;
tVLL.Close;
tbekanntdurch.Close;
tradiotyp.Close;
tzeitungstyp.Close;
QLehrangebotauswahl.Close;
QFachauswahlLehrer.Close;
QFachauswahlKunde.Close;
QSuchenVorwahl.Close;
QSuchenOrt.Close;
QVermittlungsarchiv.Close;
QSucheKundeName.Close;
QSucheKundeNummer.Close;
QSucheLehrerName.Close;
QSucheLehrerNummer.Close;
QVKNRS.Close;
QVLNRS.Close;
QVKNVS.Close;
QVLNVS.Close;
QVermFach.Close;
QVMS.Close;
QVFSSS.Close;
QVDatS.Close;
end;
output:=TFileStream.Create(pfad+'\backup\database.zip', fmCreate);
try
input:=TFileStream.Create(pfad+'\Daten\kunde.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\lehrer.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\anrede.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\lehrangebot.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\fach.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\schulform.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\stufe.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\ort_vorwahl.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\vermittlung.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\vkla.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\vlla.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\modul.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\Satistik\bekanntdurch.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\Statistik\radiotyp.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
input:=TFileStream.Create(pfad+'\Daten\Statistik\zeitungstyp.db', fmOpenRead or fmShareDenyWrite);
CompressStream(input, output);
input.Free;
except
on EFOpenError do ShowMessage('EFOpenError Raised in '+pfad+'\Daten\ddb_backup.bak');
end;
with Daten do
begin
tKunde.Open;
tLehrer.Open;
tAnrede.Open;
tLehrangebot.Open;
tStufe.Open;
tFach.Open;
tSchulform.Open;
tOrtVorwahl.Open;
tVermittlung.Open;
tModul.Open;
tVKL.Open;
tVLL.Open;
tbekanntdurch.Open;
tradiotyp.Open;
tzeitungstyp.Open;
QLehrangebotauswahl.Open;
QFachauswahlLehrer.Open;
QFachauswahlKunde.Open;
QSuchenVorwahl.Open;
QSuchenOrt.Open;
QVermittlungsarchiv.Open;
QSucheKundeName.Open;
QSucheKundeNummer.Open;
QSucheLehrerName.Open;
QSucheLehrerNummer.Open;
QVKNRS.Open;
QVLNRS.Open;
QVKNVS.Open;
QVLNVS.Open;
QVermFach.Open;
QVMS.Open;
QVFSSS.Open;
QVDatS.Open;
end;
dass der Aufruf
Delphi-Quellcode:
procedure CompressStream(inpStream, outStream: TStream);
var
InpBuf, OutBuf: Pointer;
InpBytes, OutBytes: Integer;
begin
InpBuf := nil;
OutBuf := nil;
try
GetMem(InpBuf, inpStream.Size);
inpStream.Position := 0;
InpBytes := inpStream.Read(InpBuf^, inpStream.Size);
CompressBuf(InpBuf, InpBytes, OutBuf, OutBytes);
outStream.Write(OutBuf^, OutBytes);
finally
if InpBuf <> nil then FreeMem(InpBuf);
if OutBuf <> nil then FreeMem(OutBuf);
end;
end;
Die Prozedur kommt gar nicht erst dazu CompressStream aufzurufen
Mit einem einfachen Image funktioniert es aber, das habe ich schon ausprobiert.
Kann das Ziparchiv aber nicht mit WinRar öffnen
|