Welche db-Anbindung unter Windows?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
felted
Beiträge: 3
Registriert: 15.09.2023 22:16
Wohnort: 88451 Dettingen

Welche db-Anbindung unter Windows?

Beitrag von felted »

Hallo,
es liegt ein Frontend in Accsess vor, welches die eingegebenen Daten in fünf Tabellen speichert.

Die Anwendung soll plattformunabhängig umgesetzt werden. Zudem ist ein gleichzeitiger Schreibvorgang auf die Daten notwendig. Vorerst kommen nur Client's mit Windows 11 zum Einsatz.

Welche Datenbankanbindung unter Windows 11 ist zu empfehlen?
Gibt es zu diesem Thema ein Tutorial?

Viele Grüße & Danke, Detlef
Benutzeravatar
jacdelad
Beiträge: 348
Registriert: 03.02.2021 13:39
Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
Wohnort: Riesa
Kontaktdaten:

Re: Welche db-Anbindung unter Windows?

Beitrag von jacdelad »

Hi,
wenn ich mich nicht irre musste für Access eine ODBC-Verbindung eingerichtet sein, die du in PureBasic nutzen kannst. Aber mehr kann ich dazu nicht sagen.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Benutzeravatar
TroaX
Beiträge: 661
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Welche db-Anbindung unter Windows?

Beitrag von TroaX »

Wenn die Software plattformunabhängig eingesetzt werden soll, dann ist die Wahl von Access vielleicht nicht die beste Entscheidung gewesen. Die beste Dateibasierte Datenbanklösung unter PureBasic ist zweifellos SQLite. Für Access hat jacdelad ja schon angemerkt, das du eine ODBC Datenquelle benötigst. Damit habe ich persönlich keine Erfahrung, da diese Datenquellen bei WIndows zentral im System verwaltet werden und ich daher eine erhebliche Abneigung dazu habe. Access lässt sich aber auch mit Hilfe von COM-Objekten ansprechen. Aber auch da ist Voraussetzung, das Access installiert sein muss, damit die Objekte zur Verfügung stehen. Ich finde aber beide Varianten persönlich blöd, da es eben zusätzliche Voraussetzungen beim Nutzer stellt. Aber wenn es nicht anders geht, würde ich zu ODBC raten. Denn für ODBC stehen wenigstens Treiber für Access unter den verschiedenen Plattformen kostenlos zur Verfügung. Access selbst leider nicht.

Ich selbst rate aber von Access als Datenbank für eigene Software ganz klar ab. Access-Datenbanken und Access selbst sind im Zusammenspiel dazu gedacht, direkt über Formulare und Ansichten (Views) Daten in Access zu verwalten und aufzubereiten sowie ggf. in Word-Vorlagen zu überführen (Rechnungsdruck, Lieferscheine, Aufträge etc.). Access ist also nicht nur ein Datenbankformat, sondern die "Software" Access ist auch gleich der passende Client/die passende Verwaltungssoftware für die Daten. Der einzige Grund, die Datenbanken in einer eigenen Anwendung zu nutzen wäre ein bestehender Datenbestand. Dieser dürfte sich aber problemlos auch in eine SQLite migrieren lassen. Entweder händisch mit Hilfe von CSV-Export aus Access und CSV Import über z.B. den "DBBrowser for SQLIte" oder mit externen Tools, die dir die komplette Datenbank mit wenigen Handgriffen migrieren. Allerdings kosten die Tools oftmals etwas.

SQLite hingegen ist einfach nur eine reine dateibasierte Datenbank und liefert keine Funktionalität für Clients mit. Dadurch ist sie ultra portabel und kann auch schon direkt in z.B. einer PureBasic Anwendung eingebettet werden, ohne vom Nutzer weitere Abhängigkeiten vorauszusetzen. Und mit dem DBBrowser lassen sich auch problemlos Daten bearbeiten, anlegen oder löschen sowie SQL-Querries testen, bevor man sie in den Code einbaut.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Welche db-Anbindung unter Windows?

Beitrag von mk-soft »

SQLite ist sehr gut für Einzelanwendungen, aber nicht für MultiClient Anwendung.
Ich bevorzuge MS SQL Server. Habe aber noch nicht den ODBC Client unter macOS zum laufen bekommen.
Es kommt aber darauf an auf welchen System der Datenbank Server läuft. Hier bittet sich MySQL eher an, da es für jeder OS einen Server gibt.
Ausserdem liefert PB einen MySQL Client gleich mit (MariaDB Driver).
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
TroaX
Beiträge: 661
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Welche db-Anbindung unter Windows?

Beitrag von TroaX »

Stimmt ...
Zudem ist ein gleichzeitiger Schreibvorgang auf die Daten notwendig.
Das hatte ich überlesen. Dann ist natürlich auch SQLite falsch (zumindest wenn man die Datenbank persistent in der Anwendung eingebunden hält). Aber Access halt auch. Dann wäre eine serverbasierte Datenbank definitiv vorzuziehen. Hier sind MySQL/MariaDB sowie Postgres in PureBasic enthalten. Dafür benötigt man dann aber auch zusätzlich zentral einen Server. Die jeweiligen Server sind aber auch für Windows verfügbar, sollte das ein Kriterium sein. Aber der Umgang mit den Servern ist nicht ganz trivial. Das Verwalten der Daten über PureBasic funktioniert in etwa so wie mit SQLite. Allerdings bringen diese Server noch erheblich mehr Funktionalitäten mit, die vielleicht im Bezug auf PureBasic keine Rolle spielen, aber für die Administration des Servers.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
felted
Beiträge: 3
Registriert: 15.09.2023 22:16
Wohnort: 88451 Dettingen

Re: Welche db-Anbindung unter Windows?

Beitrag von felted »

Die aktuelle Anwedung ist mit Access erstellt und soll durch PureBasic ersetzt werden. Bislang liegt die Access-db einfach nur auf einem Netzwerklaufwerk und wird bei Bedarf von den Usern geöffnet. Mit der Folge, dass bei gleichzeitigem Zugriff die db korrupt wird.

Ich selber habe bislang nur Internetseiten mit php und MySql erstellt. PureBasic habe ich gefunden, weil ich nach einer Entwicklungsumgebung gesucht habe, mit der ich eine ausführbare Anwendung mit grafischer Oberfläche erstellen kann, um eben diese uralte Access-Anwendung abzulösen.

Dann werde ich es mal mit Postgres versuchen.

Vielen Dank, Detlef
Benutzeravatar
TroaX
Beiträge: 661
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Welche db-Anbindung unter Windows?

Beitrag von TroaX »

Wäre MySQL bzw. MariaDB nicht auf Grund der Erfahrungen mit MySQL naheliegender? Oder wäre es nicht sogar noch logischer, das ganze in PHP mit einer Weboberfläche zu machen, anstatt mit PureBasic komplett bei 0 anzufangen? Ich denke noch plattformunabhängiger als das geht es ja schon garnicht mehr ;)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
felted
Beiträge: 3
Registriert: 15.09.2023 22:16
Wohnort: 88451 Dettingen

Re: Welche db-Anbindung unter Windows?

Beitrag von felted »

Ja, dass stimmt.
Ich möchte schlicht was neues ausprobieren :)
SMaag
Beiträge: 152
Registriert: 08.05.2022 12:58

Re: Welche db-Anbindung unter Windows?

Beitrag von SMaag »

SQLite: kann nur eine Verbindung zur Datenbank gleichzeitig.
mehrere User gleichzeitig mit der DB verbunden geht nicht!
(dafür benötigt man aber keinen DB-Server. Eine SQLite-DB ist einfach nur eine Datei)

Der gleichzeitige Zugriff mehrerer User mit Schreiben erfordert einen DB-Server.

PostgreSQL z.B. ist OpenSource, ebenso MariaDB,.
Firebird wäre auch eine gute Lösung, ist aber mit PureBasic nicht zu empfehlen, da das nicht integriert ist.
Firebird unterstützt beide Versionen. Eine Server-Version und eine embeded Version.

Aber: DB-Formulare in PureBasic ist viel Handarbeit. Es gibt in PB keine DB-Formulare, DB-Datengrids, die man direkt
an die Datensätze binden könnte, so wie z.B. in VisualBasic oder Lazarus/FreePascal.
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Welche db-Anbindung unter Windows?

Beitrag von Benubi »

Auch wenn es nicht die schnellste Lösung wär, in der Theorie könnte man auf SQLite+PB sein eigenes DBMS zusammenbrauen. Es lässt sich auch prima erweitern, man kann ein eigenes virtuelles Dateisystem (z.B. für Verschlüsselung) "einfach" schreiben und einbinden. Man kann auch virtuelle Verbindungen zu externen DB's ermöglich, alle DB Plugins die PB halt unterstützt (ATTACH DATABASE Befehl). Ich denke man könnte auch User Zugriffsrechte mehr oder weniger damit managen, entweder über trigger oder indem man SQLite Befehle über ImportC benutzt; da gibt es Statistiken über Tabellenzugriffe zu einem geladenen SQL Statement die man auswerten kann bevor das SQL tatsächlich ausgeführt wird (also Zugriffsrechte könnte man damit kontrollieren).
Antworten