Ich habe eine kleine Accessanwendung geschrieben, die von mehreren Usern
gleichzeitig verwendbar sein muss. Vorteil dabei ist, dass nur einer die
Daten verändern können muss, die anderen sollen nur lesen können.
Aus organisatorischen Gründen ist es nicht möglich, clientseitig etwas zu
verändern, die Anwendung muss ohne Vorkonfiguration direkt übers Netz von
jedem Rechner lauffähig sein.
Deshalb liegt die mdb Datei im Moment auf einem 'ro'-Share im Netz. Das
Problem dabei ist jetzt aber, dass eine komplexe Ausgabe benötigt wird,
die eine temporäre Tabelle erfordert (so eine Art Kreuztabelle). Diese
wird mit einer Abfrage per VBA erstellt. Nunja, ich ging einfach davon
aus, Access würde diese Tabelle "lokal" erstellen und beim Beenden die
Änderungen wieder verwerfen. In Wirklichkeit kam eine Fehlermeldung schon
bei currentdb.execute "CREATE TABLE(...)"
Nun dachte ich, das lässt sich lösen, indem ich die Datei doch 'rw'
freigebe und hab dabei den Code so geändert, dass Tabellen mit
eindeutigem Namen erstellt werden (_tmp_<zufallszahl><timestamp>), damit
sich mehrere User parallel nicht behindern.
Jetzt geht allerdings gar nix mehr, die Datei lässt sich nicht von zwei
Benutzern gleichzeitig ändern.
HILFE!
Wie gesagt, aus organisatorischen Gründen ist es nicht möglich, die
Datenbank lokal zu kopieren, es existiert auch kein SQL Server.
Weiteres Problem ist, dass die Datenbank offiziell ja schon in Betrieb
ist und ich deswegen nach einer Lösung suche, die ich möglichst schnell
und unaufwändig einbauen kann!
In mySQL z.B. gibt es temporäre Tabellen, gibt es sowas ähnlichen auch
für Access, sodass die Tabellen gar nur im RAM angelegt werden und es
somit zu keinen Problemen kommen kann?
Ich bin für jede Hilfe sehr dankbar!
Markus
Markus Bauer schreibselte:
Du mußt Schreibrechte auf das Verzeichnis geben.
Gruß
ADO disconnected Recordsets? Könnte schon gehen, ist aber vermutlich
etwas aufwendiger.
Viele Grüße
Karsten
--
http://www.kpries.de
Am Wed, 20 Apr 2005 04:52:37 -0700 schrieb Markus Bauer
Markus Bauer wrote:
> Ich habe eine kleine Accessanwendung geschrieben, die von mehreren Usern
> gleichzeitig verwendbar sein muss. Vorteil dabei ist, dass nur einer die
> Daten verändern können muss, die anderen sollen nur lesen können.
>
> Aus organisatorischen Gründen ist es nicht möglich, clientseitig etwas zu
> verändern, die Anwendung muss ohne Vorkonfiguration direkt übers Netz von
> jedem Rechner lauffähig sein.
> [...]
Wenn du ohne Aufwand (AKA organisatorische Gruende ;-) etwas am Client
drehen willst, wuerde ich wie folgt vorgehen:
- mdb in FE/BE splitten.
- Statt der MDB einen Batch starten, der ...
- - als erstes die FE.mdb auf den Client kopiert.
- - danach diese FE.mdb startet.
- Die temporaere(n) Tabelle(n) kannst du im FE anlegen.
Hat sogar noch den Vorteil, dass mehrere parallel arbeiten koennen.
Die Rechte am BE kannst du handhaben wie bisher, einer, der aendern darf,
der Rest read-only.
Gruss - Peter
--
Ich beantworte keine Fragen per Email.
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com