Client Server Beispiel.
-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Client Server Beispiel.
Hallo Leute,
hat jemand unter euch ein fertiges Client Server Beispiel mit einer Datenbank wo man einmal testen kann?
Grüße
hat jemand unter euch ein fertiges Client Server Beispiel mit einer Datenbank wo man einmal testen kann?
Grüße
-
- Beiträge: 1159
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Client Server Beispiel.
Ja, hab ich beigelegt 
SQL ist auch in der Version SQLite wie Clinent/Server zu behandeln nur dass der "Server" auch auf dem gleichen Rechner liegt bzw als Single-User benutzt wird.
Ob das nun SQLite als DB Server oder MariaDB,MySQL, MSSQL oder andere betrifft, es wird immer Client/Server programmiert
Es kommt bei großen SQL Servern auf die mehrere Benutzer zugreifen dann noch die Thematik der Duplizität oder Gleichzeitigkeit von Daten dazu -- also der Sperrung

SQL ist auch in der Version SQLite wie Clinent/Server zu behandeln nur dass der "Server" auch auf dem gleichen Rechner liegt bzw als Single-User benutzt wird.
Ob das nun SQLite als DB Server oder MariaDB,MySQL, MSSQL oder andere betrifft, es wird immer Client/Server programmiert
Es kommt bei großen SQL Servern auf die mehrere Benutzer zugreifen dann noch die Thematik der Duplizität oder Gleichzeitigkeit von Daten dazu -- also der Sperrung
- Dateianhänge
-
SQLite_Easy.zip
- (495.6 KiB) 76-mal heruntergeladen
-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hallo Charlytango,
danke für das Beispiel.
habe es gerade angesehen.-verstehe aber nicht ganz was dies mit einer C/S zu tun hat? Verstehe ich da was falsch????
Grüße
danke für das Beispiel.
habe es gerade angesehen.-verstehe aber nicht ganz was dies mit einer C/S zu tun hat? Verstehe ich da was falsch????
Grüße
-
- Beiträge: 1159
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Client Server Beispiel.
möglicherweise verstehe ja auch ich etwas falsch.
Für mein simples Hirn ist eine Datenbankapplikation eine Client/Server Anwendung.
Falls du allerdings Kommunikation zwischen zwei Rechnern meinst die Daten hin und her schicken, wäre ich natürlich falsch.
Mich hat wohl dein Wording "mit einer Datenbank" getriggert, Sorry
Für mein simples Hirn ist eine Datenbankapplikation eine Client/Server Anwendung.
Falls du allerdings Kommunikation zwischen zwei Rechnern meinst die Daten hin und her schicken, wäre ich natürlich falsch.
Mich hat wohl dein Wording "mit einer Datenbank" getriggert, Sorry
-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hallo charlytango,charlytango hat geschrieben: Di 2. Sep 2025, 23:40 möglicherweise verstehe ja auch ich etwas falsch.
Für mein simples Hirn ist eine Datenbankapplikation eine Client/Server Anwendung.
Falls du allerdings Kommunikation zwischen zwei Rechnern meinst die Daten hin und her schicken, wäre ich natürlich falsch.
Mich hat wohl dein Wording "mit einer Datenbank" getriggert, Sorry
nein eine Datenbankapplikation ist eine Datenbankapplikation. Ein C/S Applikation ist wenn sich ein Client an einem Server anmeldet und dort die Hauptdatenbank benutzt, die auf dem Server liegt. Es können sich somit mehrere Clients ( hunderte, tausende) an einer Serversoftware mit Datenbank anmelden und alle arbeiten mit der gleichen Datenbank.
Aber danke für den Versuch.

- af0815
- Lazarusforum e. V.
- Beiträge: 6928
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Client Server Beispiel.
Das ist nicht unbedingt das Merkmal von C/S DBs. Einen Server und x Clients machen keine C/S aus.
Wenn du nach einem etwas komplexeren Beispiel suchst, so schau dir Mal Mormot an. Vor allen die Doku. Die ist verdammt gut und beantwortet viele Fragen.
Wenn du nach einem etwas komplexeren Beispiel suchst, so schau dir Mal Mormot an. Vor allen die Doku. Die ist verdammt gut und beantwortet viele Fragen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Zvoni
- Beiträge: 442
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: Client Server Beispiel.
Eine C/S-Anwendung hat per se erst mal nichts mit einer Datenbank zu tun (obwohl in den meisten Fällen durchaus auch eine Datenbank hintendran sitzt).
Ein Beispiel für eine C/S-Anwendung wäre z.B. ein "Berechnungsdienst" (Stellt euch eine Physik-Abteilung einer Universität vor)
Eine "Server"-Anwendung (!!! Hat per se erst mal nichts mit einer separaten Maschine zu tun) bietet einen "Dienst" an, eine äusserst komplexe Berechnung vorzunehmen, bei welcher ein "handelsüblicher" Rechner in die Knie gehen würde.
Ein "Client" (welcher z.B. auf so einem normalen Rechner läuft), erhält von irgendwoher irgendwelche Messdaten (Bsp. Messdaten vom Kepler-Satelliten)
und der Anwender will jetzt: "Schauen wir mal, ob wir einen Exo-Planeten gefunden haben. Ich geb die Daten an unseren Supercomputer".
Der "Client" setzt einen Request an den "Server" ab ("Client" bzw. "Server" sind jetzt NICHT Maschinen/Rechner, sondern Programme!!):
Client: "Hey, Server. Hier hast du einen Batzen Messdaten. Quirl die mal durch deine Algoritmen, und gib mir das Resultat zurück."
Server: "Hey, Client. Alles klar. Wird einige Zeit in Anspruch nehmen. Ich geb dir Bescheid wenn ich fertig bin. Du kannst solange was anderes machen"
Server fängt an zu rechnen. Wenn er fertig ist, zündet er das Event "BinFertig", zu welchem der "Client" subscribed ist.
Client erhält Ergebnis.....
Ein Beispiel für eine C/S-Anwendung wäre z.B. ein "Berechnungsdienst" (Stellt euch eine Physik-Abteilung einer Universität vor)
Eine "Server"-Anwendung (!!! Hat per se erst mal nichts mit einer separaten Maschine zu tun) bietet einen "Dienst" an, eine äusserst komplexe Berechnung vorzunehmen, bei welcher ein "handelsüblicher" Rechner in die Knie gehen würde.
Ein "Client" (welcher z.B. auf so einem normalen Rechner läuft), erhält von irgendwoher irgendwelche Messdaten (Bsp. Messdaten vom Kepler-Satelliten)
und der Anwender will jetzt: "Schauen wir mal, ob wir einen Exo-Planeten gefunden haben. Ich geb die Daten an unseren Supercomputer".
Der "Client" setzt einen Request an den "Server" ab ("Client" bzw. "Server" sind jetzt NICHT Maschinen/Rechner, sondern Programme!!):
Client: "Hey, Server. Hier hast du einen Batzen Messdaten. Quirl die mal durch deine Algoritmen, und gib mir das Resultat zurück."
Server: "Hey, Client. Alles klar. Wird einige Zeit in Anspruch nehmen. Ich geb dir Bescheid wenn ich fertig bin. Du kannst solange was anderes machen"
Server fängt an zu rechnen. Wenn er fertig ist, zündet er das Event "BinFertig", zu welchem der "Client" subscribed ist.
Client erhält Ergebnis.....
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
-
- Beiträge: 1159
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Client Server Beispiel.
Das Problem, das ich mit dieser Anfrage habe, ist die nicht genormte Begrifflichkeit.
Das ist bei allen mehrbenutzer SQL-Servern so, die dahinter stehende Infrastuktur und Sucherheitsarchitekur wird sich unterscheiden.
Ein internes Büronetzwerk mit 2-n Rechnern ( das können auch schon gerne mal tausende sein bei großen Firmen) ist ebenso eine Client/Server Anwendung wie eine Suchmaschine a la Google. Nur läuft bei G die Clientanwendung im Browser, die Kommunikation über zwischengeschaltete Webserver bis die Abfrage auf seinen Datenbankservern landet (das sind in diesem Fall eben gespiegelte asynchron arbeitende Clusterlösungen die dem Client dynamisch zugeteilt werden)
Also alles Eigenschaften die lt Wikipedia Fantasien auf eine C/S Anwendung zutreffen.
Du erwähnst
Und dabei lasse ich mal alle Chatapplikationen, Streaming und Musikapplikationen, Mailserver Webserver und viele andere mal außen vor.
das was @af0815 vorgeschlagen hat ist ein Framework.
Zitat:
mORMot ist ein hochentwickeltes Open Source Framework für Datenbank-, Netzwerk- und Web-Anwendungen mit Lazarus/FPC (und auch Delphi), das ORM-, REST- und SOA-Funktionalität plattformübergreifend bereitstellt.
Es geht also darum WIE die Kommunikation vom Client zum Server läuft und WIE der Client aussieht. ZB ob er im Browser über einen zwischengeschalteten Webserver läuft oder eher monolithisch ist und Wahlweise auf einen zwischengeschalteten Anwendungsserver zugreift der die Anfrage an die Datenbank weiterleitet.
Client/Server steht also als Menü-Überschrift über einer ziemlich endlos anmutenden Liste von Möglichkeiten und Varianten über deren Sinn und Unsinn auch schon etliche Dekaden gestritten wird.
Damit dir (vielleicht wesentlich besser qualifizierte) eine valide Auskunft anbieten können musst du dir schon ein Gericht aus dem Menü aussuchen. Oder wenn ich Robert Lembke zitiere "Welches Schweinderl hätten Sie denn gerne?"
Ich weiß nicht welche abfällige Vorstellung du von einer Datenbankapplikation hast. Ja, es gibt welche, die als Einbenutzer Version Daten lokal halten, aber schon zu dBase Zeiten habe ich mehrbenutzer Konzepte umgesetzt wobei die Daten dabei auf einem gemeinsamen Server lagen. Das könnte man noch als erweiterte lokale Lösung betrachten, aber spätestens wenn ein autarker SQL-Server ins Spiel kommt, der über ein gemeinsames Protokoll Anfragen von mehreren Clients beantwortet ist man bei einem C/S Konzept.Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 Ein C/S Applikation ist wenn sich ein Client an einem Server anmeldet und dort die Hauptdatenbank benutzt, die auf dem Server liegt.
Also meine Datenbankapplikationen machen genau das.Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 00:31 Es können sich somit mehrere Clients ( hunderte, tausende) an einer Serversoftware mit Datenbank anmelden und alle arbeiten mit der gleichen Datenbank.
Das ist bei allen mehrbenutzer SQL-Servern so, die dahinter stehende Infrastuktur und Sucherheitsarchitekur wird sich unterscheiden.
Ein internes Büronetzwerk mit 2-n Rechnern ( das können auch schon gerne mal tausende sein bei großen Firmen) ist ebenso eine Client/Server Anwendung wie eine Suchmaschine a la Google. Nur läuft bei G die Clientanwendung im Browser, die Kommunikation über zwischengeschaltete Webserver bis die Abfrage auf seinen Datenbankservern landet (das sind in diesem Fall eben gespiegelte asynchron arbeitende Clusterlösungen die dem Client dynamisch zugeteilt werden)
Also alles Eigenschaften die lt Wikipedia Fantasien auf eine C/S Anwendung zutreffen.
Du erwähnst
Was denkst du denn wird das in der Praxis sein? Lt deinen Angaben
wird das irgendeine der zahlreichen Mehrbenutzerdatenbanken sein die im Servermodus laufen.
Und dabei lasse ich mal alle Chatapplikationen, Streaming und Musikapplikationen, Mailserver Webserver und viele andere mal außen vor.
das was @af0815 vorgeschlagen hat ist ein Framework.
Zitat:
mORMot ist ein hochentwickeltes Open Source Framework für Datenbank-, Netzwerk- und Web-Anwendungen mit Lazarus/FPC (und auch Delphi), das ORM-, REST- und SOA-Funktionalität plattformübergreifend bereitstellt.
Es geht also darum WIE die Kommunikation vom Client zum Server läuft und WIE der Client aussieht. ZB ob er im Browser über einen zwischengeschalteten Webserver läuft oder eher monolithisch ist und Wahlweise auf einen zwischengeschalteten Anwendungsserver zugreift der die Anfrage an die Datenbank weiterleitet.
Client/Server steht also als Menü-Überschrift über einer ziemlich endlos anmutenden Liste von Möglichkeiten und Varianten über deren Sinn und Unsinn auch schon etliche Dekaden gestritten wird.
Damit dir (vielleicht wesentlich besser qualifizierte) eine valide Auskunft anbieten können musst du dir schon ein Gericht aus dem Menü aussuchen. Oder wenn ich Robert Lembke zitiere "Welches Schweinderl hätten Sie denn gerne?"
-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hi Zvoni,Zvoni hat geschrieben: Mi 3. Sep 2025, 10:45 Eine C/S-Anwendung hat per se erst mal nichts mit einer Datenbank zu tun (obwohl in den meisten Fällen durchaus auch eine Datenbank hintendran sitzt).
das mag alles so sein, aber ich sagte doch das es bei mir mit einer Datenbank zu tun hat.

-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hi Charlytango,charlytango hat geschrieben: Mi 3. Sep 2025, 10:57 Das Problem, das ich mit dieser Anfrage habe, ist die nicht genormte Begrifflichkeit.
...
Damit dir (vielleicht wesentlich besser qualifizierte) eine valide Auskunft anbieten können musst du dir schon ein Gericht aus dem Menü aussuchen. Oder wenn ich Robert Lembke zitiere "Welches Schweinderl hätten Sie denn gerne?"
dachte das ich mich ausführlich ausgedrückt habe was für mich ein C/S Applikation ist. Mehrere Clients greifen auf einem Server zu. Ok dann das Schweinderl. :
Hauptdatenbank Firebird.
Anwendung: ein in Lazarus geschriebenes Programm mit Firebird-Datenbank und allen Daten darauf, liegt auf einem Windowsserver bei einer Uni. Ports für Firebird sind freigeschaltet und Ports nach außen auch.
Clients: sind sagen wir 20 Studenten die an verschiedenen Standorten sitzen. Manche machen Homeoffice manche sind Vorort in der Uni. Die was außerhalb sitzen greifen per VPN auf den Port zu.
Meine Frage war wie am Anfang ob es hierzu ein Beispiel gibt. Ich hoffe das ich mich nun klar ausgedrückt habe, ansonsten weiß ich nicht mehr wie ich es erklären muß.

-
- Beiträge: 1159
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Client Server Beispiel.
eben nicht -- zumindest für mein kleines Hirn nicht. Es gibt einfach zu viele Varianten, C/S zu interpretieren. Du scheinst voraus zu setzen dass dein Sicht darauf eine selbstverständliche allgemeingültige ist.Andy Nightingale hat geschrieben: Mi 3. Sep 2025, 13:59 dachte das ich mich ausführlich ausgedrückt habe was für mich ein C/S Applikation ist.
Also, ich fasse zusammenAndy Nightingale hat geschrieben: Mi 3. Sep 2025, 13:59 Hauptdatenbank Firebird.
Anwendung: ein in Lazarus geschriebenes Programm mit Firebird-Datenbank und allen Daten darauf, liegt auf einem Windowsserver bei einer Uni. Ports für Firebird sind freigeschaltet und Ports nach außen auch.
Firebird in der Variante SQL Server (wobei egal ist, welcher Server, das unterscheidet sich bestenfalls in den Statements)
Die Ports von außen sind freigeschaltet, ein direkter Zugriff ist also möglich.
Mit einer simplen DB Anbindung kann man daher von außen die Firebird Datenbank erreichen.
Variante 1
Mein Beispiel mit SQLite ist also passend, man muss nur statt TSQLite3Connection eine TIBConnection verwenden und mit einem TFBEventmonitor das Monitoring abdecken.
Also eine ganz simple Datenbankapplikation die einfach ihre Verbindung übers Internet herstellt.
Die Mehrbenutzerfähigkeit bekommt man übrigens nirgends geschenkt, um die muss man sich immer selbst kümmern.
Ob das für Studenten der Weisheit letzter Schluss ist, sei dahingestellt, denn neben dem jeweiligen Executable das man für unterschiedliche OS bereitstellen muss müssen sich die User auch noch die Zugriffsbibliotheken für Firebird installieren. Das wird den Aufwand drastisch erhöhen zumal die studentischen Rechner unterschielichste Betriebssysteme haben. Bei Tablets ist es dann ganz finster
Variante 2
Eine andere Möglichkeit wäre es eine "Middleware" (also ein Stück Software - dazu gibt es mehrere Varianten wie man das umsetzen kann) zu erstellen, das auf einem Webserver läuft, der die Representation nach außen übernimmt und gleichzeitig die Verbindung mit der Datenbank herstellt, dann läuft die Applikation aus der Sicht der Studenten in einem Browser und man hat keine Probleme mit dem eingesetzten Betriebssystem und installierten Bibliotheken -- dafür andere.
Dann allerdings wäre es angebracht alle Ports nach außen und nach innen abzudichten bis auf den Zugriff des Webservers mit der Middleware auf die Datenbank. Da stellt sich auch gleich die Frage ob Firebird in diesem Setting der Weisheit letzter Schluß ist, denn irgend eine Datenbank wird der Webserver der Uni vermutlich schon benutzen. Wenn man den gleichen nimmt verringert das den Wartungsaufwand.
Variante 3
Es gibt auch die Möglichkeit eine Client-Executable zu erstellen die mit einer einfacheren Middleware Datenbankanfragen absetzt und das Ergebnis selber parst und verarbeitest -- also etwas das SQLDB oder ZEOS schon machen. Aber mit dem Vorteil dass man auf dem Client-Rechner keine SQL Bibliotheken installieren muss. Hinkt aber etwas
Alle Varianten haben wie immer Vor und Nachteile. Jedenfalls würde ich so etwas nie auf eine bestimmte Datenbank zuschneiden sondern immer so machen dass es egal ist gegen welche DB das ganze läuft, das erspart spätere Troubles mit etwaigen Systemwechseln. (einfach schon zu oft gesehen, eine Lizenz läuft aus, der Hersteller verschwindet, die Politik ändert sich und schon steht das Werkel ohne Chance auf Weiterführung)
Ich bin kann dir nur bei Variante 1 helfen, bei Variante 2,3 mit dem Webserver fehlt mir die Erfahrung.
Stichworte und Projektmöglichkeiten findest du unten, hoffe ich hab keinen wichtigen Punkt vergessen.
pas2js (Pascal to JavaScript)
Brook for Free Pascal
mOrMot
Direkt spezielle Projektvarianten:
HTTP Server Application
CGI Application
Custom CGI Application
Apache Module
FastCGI Application
Custom FastCGI Application
-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hallo CharlyTango,
ok dann Variante 1 ein Beispiel.
Danke und Grüße
ok dann Variante 1 ein Beispiel.

-
- Beiträge: 279
- Registriert: Mo 13. Jan 2025, 12:11
Re: Client Server Beispiel.
Hallo af0815.- Danke für den Tipp.- werde es mir ansehen.af0815 hat geschrieben: Mi 3. Sep 2025, 07:33 Das ist nicht unbedingt das Merkmal von C/S DBs. Einen Server und x Clients machen keine C/S aus.
Wenn du nach einem etwas komplexeren Beispiel suchst, so schau dir Mal Mormot an. Vor allen die Doku. Die ist verdammt gut und beantwortet viele Fragen.