none
Access 2010-Datenbank öffnen scheitert nach dem x-ten Mal RRS feed

  • Frage

  • Hi,

    folgende Situation: Ich habe eine Access 2010 Anwendung, in die eine Bibliothek (C#-Assembly) eingebunden ist. In dieser öffne ich eine weitere Access-DB, um eine Query auszuführen. Dies ist in einem gesamten Prozess integriert. Soweit so gut. Wenn ich den Prozess innerhalb von Access mehrmals starte, dann bekomme ich die Fehlermeldung:

    Die Datenbank wurde von Benutzer "Admin' auf Computer ... in einen Status versetzt, in dem sie nicht geöffnet oder gesperrt werden kann.

    Code:

    public bool CallQuery(string databaseName, string queryName)
    {
      bool retStatus = false;
      Access.Application oAccess = new Access.Application();
      //Open a database NOT in exclusive mode
      try
      {
        Application.DoEvents();
        oAccess.OpenCurrentDatabase(@databaseName, false, null);
        oAccess.DoCmd.SetWarnings(false);
        oAccess.DoCmd.OpenQuery(queryName, Access.AcView.acViewNormal);
        retStatus = true;
      }
      catch (Exception ex)
      {
        Message oMessage = new Message();
        string msg = "Query: " + queryName + "\n\n" + ex.Message;
        oMessage.Show(msg, this.GetType().Name, MethodBase.GetCurrentMethod().Name);
      }
      oAccess.DoCmd.SetWarnings(true);
      oAccess.CloseCurrentDatabase();
      Marshal.ReleaseComObject(oAccess);
      Application.DoEvents();
      oAccess = null;
      return retStatus;
    }
    

    Woran kann das liegen?

    Gruß Hipp

    • Typ geändert Marcel RomaModerator Freitag, 4. Oktober 2013 08:18 Keine Antwort vom Fragenden
    • Typ geändert Hipp1010 Mittwoch, 6. November 2013 15:28 Lösung gefunden
    Donnerstag, 5. September 2013 14:20

Antworten

  • Hast du an irgendeinem Punkt die Datenbank explizit geöffnet und nicht die Ressource dann nicht wieder freigegeben?

    Klingt mir danach.


    C# und VB.NET sind wie eine Schachtel Pralinen, ich weiß nie was ich bekomme xD

    • Als Antwort markiert Hipp1010 Mittwoch, 6. November 2013 15:28
    Montag, 7. Oktober 2013 22:52

Alle Antworten

  • Hallo Hipp,
    welchen Datenbankprovider verwendest du für den Datenbankzugriff?
    Hast du nur ein Datenbankobjekt für deine Applikation?


    Viele Grüße Holger M. Rößler

    Freitag, 6. September 2013 10:12
  • Hallo,

    ich habe diesen Thread in eine Diskussion umgewandelt, da Hipp sich noch nicht zurückgemeldet hat. Die Diskussion bleibt offen.

    Gruß
    Marcel

    Freitag, 4. Oktober 2013 08:19
    Moderator
  • Hast du an irgendeinem Punkt die Datenbank explizit geöffnet und nicht die Ressource dann nicht wieder freigegeben?

    Klingt mir danach.


    C# und VB.NET sind wie eine Schachtel Pralinen, ich weiß nie was ich bekomme xD

    • Als Antwort markiert Hipp1010 Mittwoch, 6. November 2013 15:28
    Montag, 7. Oktober 2013 22:52
  • Hi,

    sorry dass cih mich jetzt erst melde. Habe den Thread übersehen. Hab das Problem gefunden. In der DB hatte ich eine gelinkte Tabelle auf die Master-DB, von der aus ich die SUB-DB eben über meine Asseembly öffne. Dies gibt einen Lock. habe die Tabelle in die SUB-Db gelegt und schon geht es.

    Merci vielmals.

    Gruß Hipp

    Mittwoch, 6. November 2013 15:27