Announcement

Collapse
No announcement yet.

Datenverlust bei Paradox

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenverlust bei Paradox

    Fällt bei einem Einzelplatz-PC (WIN95/98) zB. der Strom aus oder wird der Arbeitsplatz einfach ausgeschaltet ohne das Programm ordnungsgemäß zu verlassen, kann es sein daß Daten die über 1,2 oder 3 Stunden erfaßt wurden nach dem Neustart des Gerätes nicht mehr da sind.
    Die Datensätze werden in einer Paradox-Tabelle mit INSERT eingefügt, mit POST wird das Schreiben je Satz abgeschlossen.
    Kann dies an einem Cach des Rechners liegen und kann -wenn ein solcher vorhanden ist- dieser ausgeschaltet werden, bzw besteht die Möglichkeit Paradox zu zwingen, bei JEDEM POST sofort physikalisch auf den Datenträger zu schreiben?
    Christoph Hölzl
    [email protected]

  • #2
    Hallo,

    im <b>AfterPost</B>-Ereignis kann die IDAPI-Funktion <b>DbiSaveChanges</b> (Unit BDE) aufgerufen werden:
    <pre>
    procedure TForm1.Table1AfterPost(Dataset: TDataset);
    begin
    DbiSaveChanges(Table1.Handle);
    end;
    </pre&gt

    Comment


    • #3
      Hallo Herr Kosch,
      vielen Dank für den Tip. Ich werde es sofort ausprobieren. Es wäre gigantisch, wenn das funtionieren würde. Ich gebe Ihnen Bescheid.
      Tschüss
      Christoph Hölz

      Comment


      • #4
        Hallo,

        Was passiert wenn LocalShare=true? Ich meine irgendwo gelesen zu haben, daß die BDE die Daten in diesem Fall nicht puffert und direkt in die Datenbank schreibt.

        Schönen Tag noch,
        Dir

        Comment


        • #5
          Hallo,

          ja - aber der Aufruf von <b>DbiSaveChanges</b> oder <b>FlushBuffers</b> ist auf jeden Fall sicherer, da hier die konkrete BDE-Konfiguration des Rechners keine Rolle spielt

          Comment


          • #6
            Früher hat es die Möglichkeit gegeben über "DbiUseIdleTime" alle Daten sicher aus dem Puffer zu schreiben.

            Ist bei folgendem Aufruf sichergestellt, dass alle geänderten Tabellen aus dem Puffer geschrieben werden?

            Application.OnIdle=SaveTables;

            procedure SaveTable;
            begin
            ..FushBuffers;
            end;

            Ger

            Comment


            • #7
              Früher gab es folgende Möglichkeit alle Daten aus dem Puffer zu schreiben:

              Application.OnIdle=SaveTables;<br>
              <br>
              procedure SaveTable;<br>
              begin<br>
              ..DbiUseIdleTime;<br>
              end;<br>

              Gibt es heute keine vergleichbare Funktion mehr?
              Verärgert war ich darüber, dass ich nur durch Zufall mitbekommen habe, dass diese Funktion zwar keine Fehlermeldung erzeugt, aber auch nichts mehr macht.

              Gruß Ger

              Comment

              Working...
              X