PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cached Updates bei ADOQuery


Stefan Glock
28.02.2000, 17:44
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

Andreas Kosch
29.02.2000, 07:49
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

Stefan Glock
29.02.2000, 10:42
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..