verwendetes Datenbanksystem: SQL Compact 4.0
Hallo,
Ich habe mehrere Datenbankdateien (vom Schema) in SqlCompact 4.0 erstellt und an meine Anwendung angebunden.
Die Anwendung darf mehrfach gestartet werden, allderdings immer nur die Datenbank auswählen nicht gebrauch ist.
Gibt es eine möglichkeit dies in SQL Compackt 4.0 zu unterbinden. Also zu prüfen ob bereits eine Verbindung besteht.
Da ich SqlCeDataAdapter verwende, wird die Verbindung nach jeder aktion automatisch geschlossen.
Kennt jemand oder gibt es überhaupt möglichkeit dies zu prüfen.
Bin auch für andere Ideen offen.
Danke für die Hilfe.
Viele grüße
telly
Hallo telly168,
mir ist keine Möglichkeit direkt aus SQL CE bekannt, aber du kannst den synchronisierten Zugriff über einen benannten Mutex selbst leicht implementieren. Die Vorgehensweise ist analog zu mehrere Programminstanzen verhindern?.
mfG Gü
Hallo,
Die Anwendung läuft auf einem Terminal Server.
Ich muss das mehrfach starten anhand von Prüfen auf Owner testen.
Ich wollte dies halt über die Datenbank versuchen.
Da SQl Compackt den Mode=Exclusive unterstützt sprich es wird nur eine Verbindung zugelassen müsste ich versuchen die Verbindung aufrecht zu erhalten.
Wäre das eine möglichkeit ?
Viele Grüße
telly
Hallo telly168,
lt. Theorie wäre das eine Möglichkeit. Halte die Referenz einfach solange wie der Zugriff exklusiv sein soll.
Probier das mal aus und berichte über das Ergebnis bitte.
mfG Gü
Hallo,
ich hab eine Teilösung gefunden.
Ich hab eine Benutzerobjekt das an das Datenbank Objekt gebunden ist. Nachdem eine Aktion ausgeführt wurde durch einen SqlAdapter wird dem Benutzerobjekt gesagt es soll sich wieder mit der Datenbank mit Mode = Exclusive verbinden bist der nächste Vorgangen passiert. Dann Disconnectet das Benutzer Objekt und die Aktion darf Ausgeführt.
Ich prüfe beim Programmstart und zwischen drin immer wieder ob die Datenbank in gebrauchst ist. Sollte die Datenbank von einem anderen Prozess verwendet werden wird die SqlEx. ErrorCode 25035 zurück gegeben.
Auf einem normalen Pc funktioniert das sehr sehr gut und stabil. Auf dem Terminal Server bzw Windows 2008 Server nicht. Manchmal merkt der Server das die Datei in gebrauch ist manchmal nicht. Scheinbar glücksache 😉 oder ich habe was falsch eingestellt.
Falls jemand noch eine besser Lösung oder Idee kommt.
Gern dazu Posten. Wenn jemand Codebeispiele braucht auch kein Problem.
Viele Grüße
Telly
Hallo,
die Mode funktioniert.
Hatte noch einen kleinen fehler drin das ich einmal die Verbindung zu viele Öffne!
Problem gelöst.
Wenn jemand fragen hat kann er gerne scheiben.
Viele Grüße
telly