C# Verbindung zu einer SQLite Datenbank auf einem Server?


19.05.2020, 11:02

Der Port ist freigegeben.

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

SQLite ist nicht für den Server-Betrieb gedacht.

Es ist nur eine einzelne Datei, solange Du also Zugriff auf eben diese Datei hast, ist völlig egal, wo sie liegt und ob das ein Server ist.

Wenn Du einen Datenbank-Server haben willst, dann nimm lieber ein Datenbanksystem, was für den Server-Betrieb gebaut wurde, wie der SQL-Server von Microsoft oder MySQL.

Ich nutze SQLite eigentlich nur, um lokal Daten abzuspeichern, weil es mMn. angenehmer zu nutzen ist, als Json under XML.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Sqlite ist doch einfach nur eine Datei, welcher Prozess hört also auf Port 1234?

Du brauchst einen Prozess der auf 1234 lauscht und DB Zugriff erlaubt. Dass Du den Pfad auf dem Zielsystem angibst ist auch seltsam. Der Prozess muss wissen wo die DB ist, der, der von außen auf die DB zugreifen will muss nicht wissen wo sie physisch liegt.

Gruß

Ollig00 
Fragesteller
 19.05.2020, 11:08

Ich habe versehentlich auf "Nicht hilfreich" geklickt. Das sollte selbstverständlich das Gegenteil sein.

Deine Antwort ist sehr interessant... Wie stelle ich das denn an, das meine Anwendung weiß, wo die Datenbankdatei liegt?

MfG

0
AldoradoXYZ  19.05.2020, 11:41
@Ollig00

Also SQLite zeichnet sich ja grad dadurch aus, dass es keinen Server gibt:

SQLite is an example of a classic serverless database engine. With SQLite, there are no other processes, threads, machines, or other mechanisms (apart from host computer OS and filesystem) to help provide database services or implementation. There really is no server.

Dazu mal:

Access remote sqlite database
You cannot directly access an sqlite database remotely like that. If you need to share it, you will have to develop a web service and talk to the web service rather than the database from your Qt Application. There are some tools which act as a web service for stuff like that, e.g. this site has some links.Mar 19, 2013

Access sqlite from a remote server - Stack Overflow

Hilft dir das hier:

https://www.codeproject.com/Questions/1166694/How-can-I-access-sqlite-DB-from-another-machine

Du musst irgendwie den Dateizugriff ermöglichen. Einen extra Prozess für SQLite gibt es auf der Serverseite nicht.

Für mich ist SQLite dann die falsche Wahl und ich würde für Client-Server eher auf ein "richtiges" DBMS (DatabaseManagementSystem) setzen. SQLite ist für mich eine lokale DB, wenn man keine full blown DBMS möchte, weil man eh kein Client-Server nutzen will. Wenn Du zum Beispiel selbst deinen ServerProzess implementierst ist SQLite ganz nützlich um schnell mal eine DB zu haben ohne einen extra Prozess installieren und starten zu müssen.

Gruß

0

SQLite hat keinen Datenbankserver, der auf irgendeinem Port hört. Wenn die Datenbank auf einem Server sein soll, musst Du entweder ein entsprechendes Datenbanksystem wie MySQL oder PostgreSQL nehmen, oder aber den entsprechenden Ordner freigeben und dann als Data Source den UNC-Pfad zur Datei nehmen (z.B. "\\server\Pfad\datenbank.sqlite").

Wie schon geschrieben wurde, ist SQLite an sich erst einmal kein Server. Du kannst SQLite mithilfe einer DLL wie jede andere Datenbank nutzen. Die DLL stellt dabei die Verbindung zur Datei her.

Wenn die Datenbank-Datei auf dem Server liegen soll, muss du sie irgendwie lokal verfügbar machen, zum Beispiel mit einer Dateifreigabe oder Samba.

Aber freu dich nicht zu früh: Für Multiuser ist SQLite nicht besonders gut geeignet.

Ich empfehle auf MySQL oder MariaDB auszuweichen. Das sind richtige Datenbanksysteme, die viel skalierbarer sind und sich auch vorzüglich für mehrere Nutzer gleichzeitig eignen.

SQLite ist gut als Datenspeicher für lokale Anwendungen geeignet. Kommt zum Beispiel bei Android-Apps sehr gerne zum Einsatz.