Announcement

Collapse
No announcement yet.

Cached Updates bei ADOQuery

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

  • Cached Updates bei ADOQuery

    Hallo,

    beim umstellen meinen Programmes von der BDE auf ADO möchte ich wenn
    möglich folgendes genauso realisieren:

    Beim Ändern einer Tabelle mit Zugriffsrechten habe ich momentan die
    Optionen CachedUpdates beim Query aktiviert und kann somit Änderungen
    jederzeit verwerfen.

    Gibt es eine analoge Funktion bei den ADO Komponenten.

    Danke im voraus.

    Stefan Glock

  • #2
    Hallo,

    ja - die <b>UpdateBatch</b>-Methode des RecordSet-Objekts (alias TADODataSet) speichert die Änderungen aller bisher geänderten Datensätze im Batch-Betrieb. Die Methode steht nur dann zur Verfügung, wenn der LockType <b>adLockBatchOptimistic</b> (alias <b>ltBatchOptimistic</b> bei TADODataSet) verwendet wird und die Eigenschaft <b>CursorType</b> auf <b>ctKeySet</b> oder <b>ctStatic</b> konfiguriert wurde.

    Der UpdateBatch-Mechanismus von ADO unterscheidet sich gravierend von dem Cached Update-Mechanismus der BDE. Im Gegensatz zur BDE wird die Aufgabe nicht in 2, sondern nur ein einem Schritt abgearbeitet. Wenn zum Beispiel beim Master/Detail-UpdateBatch auch nur ein Vorgang fehlerhaft ist, stehen die Zwischenspeicherungen für beide Datenmengen unter ADO nicht mehr zur Verfügung (d.h. alle erfolgreichen Update-Vorgänge werden sofort aus der Liste entfernt). Um dieses Prinzip zu umgehen, muss der Entwickler vor dem Aufruf von UpdateBatch die Datenmenge über SaveToFile vorher sichern. Erst dann erhält er im Fehlerfall überhaupt erst eine zweite Change

    Comment


    • #3
      Danke, hat funktioniert. Ich habe jetzt, dank Ihren ganzen Tips das
      komplette Programm auf ADO umstellen können. War aber insgesamt weit
      mehr Aufwand als ich gedacht hatte. (Ufff..

      Comment

      Working...
      X