Announcement

Collapse
No announcement yet.

TQuery und CachedUpdates

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

  • TQuery und CachedUpdates

    Hallo wer weis bescheit?<br>
    Im meiner Anwendung werden grosse Datenmengen in die Datenbank eingefühgt.
    Dazu nehme ich die TQuery, diese wurde zuvor auf CachedUpdates gesetzt.
    Die Daten werden mit SQL in Form (INSERT INTO Table) eingefühgt und anschliesend SQLExec aufgerufen. Wenn ich dann meine 360000 Datensätze eingefühgt habe rufe ich ApplyUpdate auf und es sich keine Daten im Cache wohl aber in der Tabelle warum?? Was und wie macht CachedUpdates ????

    PITT

  • #2
    Hallo,

    über Cached Updates kann der Client alle Datenbankaktionen zuerst lokal über automatisch erstellte Paradox-Tabellen zwischenspeichern. Wenn <b>ApplyUpdates</b> aufgerufen wird, transportiert die BDE alle Daten aus diesem lokalen Cache (temp. Paradox-Tabellen) in einem Schritt zur Datenbank. Der Vorteil von Cached Updates liegt also darin, die Zugriffe auf die Datenbanken auf einen kurzen Zeitpunkt zu konzentrieren, an statt bei jedem Datensatz die Änderung sofort in die Datenbank zu schreiben. Allerdings machen sich diese Vorteile nur dann spürbar bemerkbar, wenn auf eine Datenbank auf einem Server oder gar auf eine SQL-Datenbank zurückgegriffen wird

    Comment


    • #3
      Hallo Herr Kosch<br>
      Ich habe leider noch immer nicht verstanden wie CachedUpdaten gehändelt wird. Wie oben beschrieben setze ich die Query auf
      Query1.cachedUpdate. Dannlasse ich in einer Schleife meine Daten mit
      Insert... + Query1.ExecSQL in die Tabelle laufen. Anschliessend rufe ich <b>nicht</b> Query1.ApplyUpdate auf und die Daten sind trotzdem in der Tabelle. Wenn ich mit Query1.UpdatesPending prüfe ob Daten im Cache sind, bekomme ich false zurück??

      Pit

      Comment


      • #4
        Hallo,

        der Cached Update-Mechanismus funktioniert nur dann, wenn <br>
        a) die Eigenschaft <b>CachedUpdates</b> aktiviert wurden, und <br>
        b) die Eigenschaft <b>UpdateObject</b> auf eine konfigurierte <b>TUpdateSQL</b>-Instanz zeigt oder <b>OnUpdateRecord</b> genutzt wird.

        Wenn Cached Updates aktiv sind, muss im Programmverzeichnis oder im über <b>PrivateDir</b>-Verzeichnis die temp. Tabelle als Datei zu sehen sein.

        Wenn das Verfahren TQuery+TUpdateSQL genutzt wird, ist TQuery für SELECT und TUpdateSQL für INSERT, UPDATE und DELETE zuständig (siehe Einstellung im <i>UpdateSQL-Editor</i>). Dies bedeutet jedoch auch, das das Ganze <b>nur dann</b> funktioniert, wenn man die TQuery-Instanz als editierbare Datenmenge (RequestLive) betrachtet und die Datensätze über die TQuery-Methoden einfügt. Wenn ich mir Ihre Frage nochmals genau durchlesen, verwenden Sie jedoch eine explizite INSERT-Anweisung, somit bleibt der Cached Update-Mechanismus für eine editierbare TQuery völlig außen vor (denn für ein INSERT ist nur TUpdateSQL zuständig).

        &#10

        Comment

        Working...
        X