Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   REFRESHCACHE wirft EOleSysError: "%1 wurde nicht gefunden" (https://www.delphipraxis.net/179819-refreshcache-wirft-eolesyserror-1-wurde-nicht-gefunden.html)

quaero 4. Apr 2014 09:47

Datenbank: Access • Version: OLEDB4.0 • Zugriff über: JRO.JetEngine

REFRESHCACHE wirft EOleSysError: "%1 wurde nicht gefunden"
 
Hallo,

ich habe mehrere Anwendungen, die auf die selbe Access-DB zugreifen. Schreibende Zugriffe auf die DB habe ich in Transaktionen gepackt. Vor lesenden Zugriffen leere ich den Cache, um aktuelle Änderungen mitzubekommen.
Bei einem einzelnen Rechner mit Win7 wird beim Aufruf von REFRESHCACHE eine Exception vom Typ EOleSysError mit der Meldung "%1 wurde nicht gefunden" geworfen. Die msjro.dll ist registriert und auf dem neuesten Stand. CreateOleObject('JRO.JetEngine') funktioniert. Die _connection existiert und ist auch zur richtigen DB verbunden. Die Eigenschaften der Verbindung sind unauffällig und liefern auch die gewünschten Daten zurück. Nur das REFRESHCACHE klappt nicht. Auf vielen anderen Rechnern (auch mit Win7 x64) läuft alles ohne Probleme.
Hat schon mal jemand diese Fehlermeldung gesehen und/oder kann mir sagen, wo die EOleSysError geworfen wird (Delphi oder Windows?). Gibt es vielleicht sogar Lösungsansätze. Ich bin für alles dankbar, was mich in der Sache weiterbringt. Weitere Informationen kann ich nur gelegentlich einholen, da ich keinen direkten Zugriff auf den Rechner habe.

Grüße
quaero

sx2008 4. Apr 2014 13:11

AW: REFRESHCACHE wirft EOleSysError: "%1 wurde nicht gefunden"
 
Zitat:

Zitat von quaero (Beitrag 1254610)
ich habe mehrere Anwendungen, die auf die selbe Access-DB zugreifen

Tja, das ist bei Access ganz allgemein etwas schwierig.
Die Jet Engine funktioniert recht gut wenn nur eine Anwendung und nur eine Connection verwendet wird.
Ich habe bei mit mehreren Connections in mehreren Anwendungen schlechte Erfahrungen gemacht und verwende in diesen Fällen den Microsoft SQL Server (Express oder Standard Edition).

Hast du die CursorLocation überall auf useServer gesetzt?
Der Default ist useClient.

quaero 7. Apr 2014 10:32

AW: REFRESHCACHE wirft EOleSysError: "%1 wurde nicht gefunden"
 
CursorLocation wird nicht explizit gesetzt, ist also vermutlich auf auf clUseClient.
Ich werde Ende der Woche mal probieren, ob useServer Abhilfe schafft und vom Versuch berichten. Danke für den Tipp.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz