Forums Neueste Beiträge
 

CQL CE Datenbank auf dem Netzwerk?

09/03/2010 - 10:19 von leslie eldrige | Report spam
Hallo Zusammen,

Ich fand es super, dass es mit SQL CE eine einfache file Datenbank gibt, die
man unproblematisch für kleine Projekte einsetzen kann.

als ich dann meine Applikation mit der Datenbank auf den Netzwerk anderen
zur Einsicht zur Verfügung stellen woole, musste ich feststellen, dass man
auf die Datenbank nur zugreifen kann, wenn sie auf dem eigenen Computer ist!

Eine Suche im Internet ergab, dass sie auch so absichtlich gemacht wurde.
Ich wundere mich und hoffe, dass ich da etwas falsch verstanden habe. Ich
verstehe schon, dass man diese Art von kleinen Datenbanken nicht im Multiuser
betrieb einsetzen soll, aber sind die Entwickler nicht auf Idee gekommen,
dass man die Daten einfach anderen zur Einsicht zur Verfügung stellen könnte?

Weiss jemand vielleicht wie man doch die SQL CE vom einen Netzwerkaus
verwenden könnte. Über File Mode (Connection String) geht es leider auch
nicht. Mir bleibt wohl nichts anderes als mein Projekt jetzt auf MS Access
umzustellen! Schade, SQL CE sieht wirklich gut aus und làsst sich aus VS 2008
sehr einfach managen.

Für jeden Hinweis bedanke ich mich im Voraus und einen schönen Tag wünsche
ich auch.

Grüsse
 

Lesen sie die antworten

#1 Thorsten Doerfler
10/03/2010 - 19:39 | Warnen spam
leslie eldrige schrieb:
Weiss jemand vielleicht wie man doch die SQL CE vom einen Netzwerkaus
verwenden könnte. Über File Mode (Connection String) geht es leider auch
nicht.



Verwendbar sollte sie schon sein, jedoch immer nur von einem User zur
gleichen Zeit. Mehrfachzugriffe werden auf einem Network Share nicht
unterstützt, da die DB im Netzwerk immer exklusiv geöffnet wird.

Man sollte sich da nicht von der Dokumentation in die Irre führen
lassen, die das nirgendwo explizit erwàhnt, sondern eher im Gegenteil:

Accessing and Modifying Databases
http://msdn.microsoft.com/en-us/lib...71959.aspx

Nennt unter anderem breit "Multiuser Access".

How to: Set the File Mode when Opening a Database (Programmatically)
http://msdn.microsoft.com/en-us/lib...71817.aspx

Dort kann man die Notiz leicht als Empfehlung missinterpretieren:

"Note:
If you are opening a database that is located on a file share, use the
Exclusive file mode."

Deutlicher wird da die Dokumentation des SQL Compact native API:

How to: Set the File Mode when Opening a Database with OLE DB
http://msdn.microsoft.com/en-us/lib...71763.aspx

"Note:
When you open a database that is located on a file share, the only
option available is the DB_MODE_SHARE_EXCLUSIVE file mode. Reading and
writing a SQL Server Compact 3.5 database over a network share works
only from one process. Within that one process, multiple connections can
be opened. For example, one connection can perform an Insert operation
and a second connection can perform a Select query. However, two
separate connections cannot use SQL Server Compact 3.5 to access the
same .sdf file over a network share. The second connection will receive
a file-sharing violation error."

Lösung kann hier sein, die Verbindung zur SQL Compact DB immer nur
gerade für die Abfrage von Daten zu öffnen und gleich wieder zu
schließen. Durch den Einbau eines Locking Checks, kannst Du so mehreren
Benutzern erlauben, die Daten über einen Network Share einzusehen. Bei
parallelen Zugriffen muss einer eben immer warten, bis die Abfrage des
anderen bearbeitet ist und die Verbindung wieder geschlossen.

Obacht auch bei Terminal Server Sessions: Diese Verhalten sich genauso,
wie Network Shares, auch wenn aus Anwender/Anwendungssicht der Zugriff
lokal erfolgt.

Mir bleibt wohl nichts anderes als mein Projekt jetzt auf MS Access
umzustellen!



Wenn SQL Express ausscheidet und o.g. Lösung ebenso, bleibt da wirklich
nicht mehr viel übrig.

Schade, SQL CE sieht wirklich gut aus



Wie viele MSFT Entwicklungen der letzten Jahre. Sehen "außen" toll aus,
schaut man mal unter den Rock, ob freiwillig oder eben unfreiwillig,
weil man gerade mal wieder vor eine Wand gerannt ist, wegen
missinterpretierter oder fehlender Dokumentation, schüttelt es einen.

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen