PDA

View Full Version : ADO ActiveX



lrmeyer
11-09-02, 15:11
Hallo zusammen,

wir haben folgendes Problem: Wir greifen vom PC aus auf AS/400 mittels ADO/ActiveX-Schnittstellen zu. In diesem Zusammenhang haben wir das Problem, das bei Datenzugriffen von z.B. mehr als 20.000 Datensätzen enorme Performance-Probleme auf seiten des PCs auftreten. Das bedeutet, das in diesem Fall sehr lange Wartezeiten auftreten. Dies scheint mehr ein Problem der Programmierung zu sein, und nicht ein Problem mangels Hauptspeicher o.ä.

Kann irgendjemand einen Rat geben bzw. weiß irgendjemand, wo entsprechende Literatur zu finden ist. Wir haben jedenfalls bis jetzt noch nichts passendes gefunden. Vielen Dank.

Lars

Fuerchau
17-09-02, 15:32
Das Problem wird sein, daß ADO wohl über ODBC auf den CA/400-ODBC-Treiber verwendet wird.
Wenn hier die Standardeinstellungen von ADO verwendet werden, wird noch eine SQL-Schicht eingeschoben, da CA/400 keine BOOKMARKS unterstützt !
Wenn also entsprechende Daten per SQL gelesen werden, muß man entscheiden ob diese Daten ggf. geändert werden müssen. Wenn nicht, sollte man unbedingt SNAPSHOTS verwenden.
Ansonsten verwaltet diese zusätzliche Schicht selbständig für jeden Datensatz eine Bookmark sowie ein Before-Immage um konkurierende Updates festzustellen.
Ausserdem erfolgt der Zugriff (Cursor dynamisch oder statisch) bei der sequentiellen Verarbeitung in 2 Schritten:
1. Zugriff für die Bookmark
2. Zugriff für den eigentlichen Satz
Dadurch kann die AS/400 keine Blockung der Daten für schnelleren Zugriff verwenden.

Z.B. ein MoveNext(100) erfordert 100 Zugriffe für die Bookmarks + 1 Zugriff für den dann ermittelten Satz.

usw. usw.

Ich bin bisher am besten mit DAO und ODBC-Direktarbeitsbereich gefahren.