![]() |
Datenbank: SQLite • Version: 3.x • Zugriff über: universell
SQLite - Wie Multiuser Zugriff regeln?
Hallo,
eine Anwendung (Fuhrpark-Verwaltung) speichert Daten in einer SQL-Datenbank. Über eine Zwischenschicht (einfach ein Object, dass die Daten bereitstellt) wird nun die Möglichkeit geboten MSSQL, Firebird oder SQLite zu verwenden. Grundsätzlich empfehle ich, SQLite nur für Einzelplatz-Rechner zu verwenden, will aber auch hier eine Notlösung für 2-3 Clientrechner bieten. Es wird meistens lesend auf die Datenbank zugegriffen. Schreibzugriffe bei neuem Fahrzeug, Werkstattbesuche oder Verbrauchswerte eingetragen oder neue Bilder eingefügt werden. Denke also, das es sehr selten zu Schreibkollisionen kommen wird. Meine Lösung über eine Lock-Table ist für SQLite nicht sicher, da ja kein zentrales DBMS den Zugriff regelt, sondern dezentral die Clientrechner per DLL auf die DB zugreifen. Im worst-case locken zwei Clientrechner die gleiche Tabelle/Datensatz. *** Meine erste Idee und bisher einziger Ansatz ist, das ich eine Datei zur Datenbank mit anlege. Also neben Daten.sqlite noch eine Daten.lock. Diese Datei Daten.lock wird vom Clientrechner exclusiv (ShareDenyAll) geöffnet, bevor ein Schreibzuriff innerhalb der Daten.sqlite erfolgt. Welche Lösungen würde Ihr vorschlagen? |
AW: SQLite - Wie Multiuser Zugriff regeln?
Zitat:
Wieso bietest Du überhaupt unterschiedliche DB an? Was Du da machst, hat weder Hand noch Fuss. Du läufst mit so einer Krückenlösung Gefahr, das der Kunde sich die Datenbank zerschießt. Schmeiss SQLLite doch einfach aus dem Portfolio und verwende nur FB, und von mir aus auch MSSQL (aber wieso eigentlich?). |
AW: SQLite - Wie Multiuser Zugriff regeln?
Zitat:
Hat man ein DB im Angebot die der Kunde eh schon hat (i.d.R. MS SQL Server, MySQL oder Oracle) so kann man diese Installation verwenden und somit auch vorhandene Backupmechanismen, ... |
AW: SQLite - Wie Multiuser Zugriff regeln?
Zitat:
Das ist aber unwichtig... Die Frage ist nur, wie ich einen sicheren Multiuser-Zugriff mit SQLite lösen könnte. Gibt es keine sichere Lösung, wird es Singleuser beschränkt, aber auf jeden Fall drin bleiben. // Es wäre Schade, wenn die Diskussion an der Frage vorbeiläuft, weil ich das aktuelle Einsatzgebiet gleich mit beschrieben habe. |
AW: SQLite - Wie Multiuser Zugriff regeln?
Du könntest eine Liste dazugeben, welche Tabellen gerade in Gebrauch sind. Ist das der Fall bekommt der zweite, der auf die Tabelle zugreifen möchte eine Meldung angezeigt, dass er es in einigen Sekunden noch einmal versuchen soll.
mfg Florian |
AW: SQLite - Wie Multiuser Zugriff regeln?
Einfache Lösung?
SQLLite nur für SingleUserSysteme. Sobald es mehr wird, dann ein richtiges DBMS nutzen, welches von sich aus MultiUser anbietet. |
AW: SQLite - Wie Multiuser Zugriff regeln?
Zitat:
Wie himitsu auch geschrieben hat, für richtiges Multiuser muss ein Server-System verwendet werden. Es wäre nur gut, wenn mit SQlite eine Art Basis-Muliuser-Zugriff möglich wäre z.B. für Heimnetzwerke ohne Server. |
AW: SQLite - Wie Multiuser Zugriff regeln?
Zitat:
Ich würde nicht anfangen, mir eine Lösung zusammenzufrickeln, nur weil ich unbedingt bei SQLite MU brauche. Wenns für den Kunden billig sein soll, dann würde ich ihn eher dazu anhalten, MySQL zu installieren, wenn er eine MU-Umgebung benötigt. Das müsstest du natürlich noch unterstützen, ist ja aber nichts unmögliches. |
AW: SQLite - Wie Multiuser Zugriff regeln?
Ja, es sollen viele DBMS unterstützt werden, gruppiert nach Fähigkeiten.
Wenn es zu riskant ist, dann schiebe ich SQlite in die SingleUser-Gruppe zusammen mit XML, INI usw. (letztere sind sogar nur SingleTable) |
AW: SQLite - Wie Multiuser Zugriff regeln?
Schau Dir mal die Patterns Optimistic-Offline-Locking oder Pessimistic-Offline-Locking an. Die könnten Dir weiterhelfen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz