tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
1098
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    devencer devencer ist offline Mitglied
    Registriert seit
    Oct 2008
    Beiträge
    16
    Hi

    Ich arbeite an einem kleinen Programm mit Access Backend, das von ca. 20 Usern benutzt werden soll. Um zu testen, wie Access reagiert, wenn mehrere User an derselben DB arbeiten, habe ich mir eine Test-Routine geschrieben, die 1000 INSERT-Einträge in die DB schreibt. Wenn ich diese Routine zwei mal ausführe (DB auf Netzlaufwerk), erhalte ich sporadisch folgende Fehlermeldung: Datenbank '' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt. Was hat das zu bedeuten?

    Wenn ich den Test lokal ausführe, erhalte ich weniger Fehlermeldungen.

    Wenn ich die Test-Routine von zwei verschiedenen Rechnern ausführe erhalte ich nun die folgenden Meldungen:
    Datenträger- oder Netzwerkfehler
    oder
    Operation muss eine aktualisierbare Abfrage verwenden

    Ist Access überfordert? Oder muss ich die SQL-Commands irgendwie absichern, à la SyncLock wie beim Threading?

    Ich bin froh um jeden Tipp

    Gruss
    devencer
    Geändert von devencer (22.12.08 um 17:48 Uhr)
     

  2. #2
    nostral nostral ist offline Mitglied Bronze
    Registriert seit
    Feb 2005
    Beiträge
    28
    Hi,

    Dir ist aber bekannt, das Access eine Desktop - Datenbank ist? Die ist für ein derartigen Zugriff über ein Netzwerk nicht entwickelt worden. Warum nimmst Du nicht eine SQL - Datenbank mit SQL - Server Express? Den SQL - Server Express gibt es bei Microsoft kostenlos und für ca. 20 User reicht das allemal.
     
    Mfg

    Nostral

  3. #3
    Avatar von JensG
    JensG JensG ist offline Mitglied Platin
    Registriert seit
    Jun 2004
    Ort
    Gera (Thüringen)
    Beiträge
    517
    Hallo Zusammen,

    grundsätzlich geht das bis zu einer gewissen Anzahl von Benutzern
    schon. Auch mit Access.
    Der Haken ist aber der das du Programmintern gleichzeitige Zugriffe
    selber abfangen musst (Try Catch) (da eine Access DB nur ein File ist) und den fehlgeschlagenen Versuch z.B. in einer
    Schleife wiederholen musst (mit Fehlerauswertung). Das ist aber sehr aufwendig
    und die DB kann trotzdem schnell kaputt gehen.
    Deshalb rate ich auch ganz klar davon ab.
    Die Access mdb muss auch ständig komprimiert und repariert werden, weil sie
    sonst immer größer wird (auch beim Löschen von Datensätzen).

    Nimm ein echtes DBMS. Es gibt genug kostenlose. MySQL, SQL Server Express
    etc. Da kümmert sich der Datenbankserver / Dienst um die Zugriffe.
    Und seit SQL Server Express 2005 (aktuell 2008) gibt es auch keine Einschränkung
    mehr bezüglich der Zugriffe (bei MSDE waren die mal auf 5 begrenzt).
    Lediglich max 1GB Arbeistspeicher für den Server und eine Datenbankgröße
    von 2 GB sind die Einschränkungen vom SQL Server Express gegenüber dem
    großen SQL Server. (OK, die Zusatztools sind beim großen noch Umfangreicher...)
    Beide (MySQL oder SQL Server Express) sind Ruck Zuck installiert.

    Jens
     
    Hilfreiche Posts bitte bewerten !

Ähnliche Themen

  1. Gleichzeitiger Zugriff auf Textdatei
    Von Taschkin im Forum PHP
    Antworten: 6
    Letzter Beitrag: 14.03.10, 13:55
  2. Antworten: 4
    Letzter Beitrag: 24.06.09, 13:40
  3. Spring und RPC: Gleichzeitiger Zugriff von Clients auf Server-Methoden, was passiert
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 6
    Letzter Beitrag: 22.04.09, 14:23
  4. Zugriff auf eine Access Datenbank
    Von DERHAARKAMM im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 2
    Letzter Beitrag: 16.02.09, 19:14
  5. Antworten: 3
    Letzter Beitrag: 21.05.06, 18:52