Einzelnen Beitrag anzeigen

chrissy

Registriert seit: 7. Jan 2005
29 Beiträge
 
#11

Re: Datenbankbackup (Paradox) lokal auf dem Rechner

  Alt 19. Jan 2005, 11: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
  Mit Zitat antworten Zitat