Beispiel C/S Datenbank

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Benutzeravatar
Zvoni
Beiträge: 268
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: Beispiel C/S Datenbank

Beitrag von Zvoni »

OK, sehr gute Ratschläge schonmal, aber ich glaube es wird etwas übersehen:
Es gibt bereits eine laufende Software, welche zur Zeit 460K Datensätze in einer bereits vorhandenen Datenbank speichert!!!

Seit wann ist ein Datenbank-Server Bestandteil einer Client-Software?
af0815 hat SAP erwähnt. Sehr gut. Erinnert mich auch sehr an ein ERP.
Aber mir wäre keine solchige Software bekannt, welche auf ein DBMS festgelegt wäre.

Die ganzen Anbieter solcher Software fragen immer "Welchen DB-Server nutzen Sie?"

Frage an Andy: Was für eine Datenbank wird denn JETZT verwendet?
Und es würde mich sehr wundern, wenn es Bestandteil der Lizenzierung wäre (Hat wohl eher seine eigene Lizenz)
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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6661
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: Beispiel C/S Datenbank

Beitrag von af0815 »

af0815 hat geschrieben: So 2. Feb 2025, 22:50 Das Murmeltier aka Mormot ist ein volle, extrem komplexe C/S Umgebung die mit Rest über Computer bzw. Devicegrenzen arbeitet. Nicht unbedingt was für Anfänger. Und wenn, so wūrde ich mir einmal die Doku echt reinziehen. Komm ich mit der klar, kann man es auch installieren.

Für die Installation sollte man unbedingt der Doku zur Installation folgen. Dann geht's auch.
Installation von gerade eben:
* ) frisches win X64 mit fpc main und Lazarus main (wenn, dann braucht man schon Mut :-) )
* ) synopse 2 mit GIT heruntergezogen
* ) Wichtig, man brauch die passenden static packages - siehe Readme mORMot2\static\README.md
* ) Mormot kompilieren lt. Anleitung von mORMot2\packages\README.md (ich habe es 2x machen müssen)
* ) Jetzt lässt sich laut Anleitung das Testprojekt auch kompilieren und ausführen. (Das wirft dann ein paar Runtimefehler im Debugger, läuft aber immer weiter)

Nur so als Ergänzung. Das mit den Statische Paketen muss man in der Anleitung erlesen (oder Wissen).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Soner hat geschrieben: Mo 3. Feb 2025, 23:55 Ich würde in deiner Stelle folgendes nehmen:
- Datenbank --> Firebird,
- Datenbank-Komponenten --> SQLDB oder ZEOS,
- Berichte --> LazReport + Grids + HTML + PascalScript,
- PDF --> Chromium,
- Scan --> Twain,
damit bist du sehr gut aufgehoben. Verwende kein Appserver, kommuniziere direkt mit Firebird-Server. AppServer machen Programme nur komplizierter.
Nach deiner Aufgabenstellung hier hier ist das nur ein paar Monate Arbeit, so schwer ist das nicht maximal 3-4 Monate.
Hallo Soner,
das scheint genauso zu sein wie ich es mir vorstelle. Danke sehr. Was ich noch nicht verstehe ist auf was muß ich achten wenn ich code von außerhalb in meinen hinein bringen möchte? Da verhaut es mir immer und ich verstehe es nicht genau. Weißt du was ich meine?

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

af0815 hat geschrieben: Di 4. Feb 2025, 09:03
af0815 hat geschrieben: So 2. Feb 2025, 22:50 Das Murmeltier aka Mormot ist ein volle, extrem komplexe C/S Umgebung die mit Rest über Computer bzw. Devicegrenzen arbeitet. Nicht unbedingt was für Anfänger. Und wenn, so wūrde ich mir einmal die Doku echt reinziehen. Komm ich mit der klar, kann man es auch installieren.

Für die Installation sollte man unbedingt der Doku zur Installation folgen. Dann geht's auch.
Installation von gerade eben:
* ) frisches win X64 mit fpc main und Lazarus main (wenn, dann braucht man schon Mut :-) )
* ) synopse 2 mit GIT heruntergezogen
* ) Wichtig, man brauch die passenden static packages - siehe Readme mORMot2\static\README.md
* ) Mormot kompilieren lt. Anleitung von mORMot2\packages\README.md (ich habe es 2x machen müssen)
* ) Jetzt lässt sich laut Anleitung das Testprojekt auch kompilieren und ausführen. (Das wirft dann ein paar Runtimefehler im Debugger, läuft aber immer weiter)

Nur so als Ergänzung. Das mit den Statische Paketen muss man in der Anleitung erlesen (oder Wissen).
Ui das ist doch ein ganz schöner Aufwand...aber wenn er sich lohnt. Danke sehr für die Aufdrößelung. :D

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Zvoni hat geschrieben: Di 4. Feb 2025, 08:55 OK, sehr gute Ratschläge schonmal, aber ich glaube es wird etwas übersehen:
Es gibt bereits eine laufende Software, welche zur Zeit 460K Datensätze in einer bereits vorhandenen Datenbank speichert!!!

Seit wann ist ein Datenbank-Server Bestandteil einer Client-Software?
af0815 hat SAP erwähnt. Sehr gut. Erinnert mich auch sehr an ein ERP.
Aber mir wäre keine solchige Software bekannt, welche auf ein DBMS festgelegt wäre.

Die ganzen Anbieter solcher Software fragen immer "Welchen DB-Server nutzen Sie?"

Frage an Andy: Was für eine Datenbank wird denn JETZT verwendet?
Und es würde mich sehr wundern, wenn es Bestandteil der Lizenzierung wäre (Hat wohl eher seine eigene Lizenz)
Hallo Zvoni,
es ist nicht SAP sondern 4d. Im Grunde ein cooles Produkt, das aber seit 1.01..2025 die Lizenzen erheblich erhöht hat. Ein Server mit 20 Clients und Maintenance und wichtige Module kosten nun über 20.000 Euro. Es gibt nun auch ein Mietmodell wo man monatlich erhebliche Kosten hat die der Kunde vorher nicht hatte. Ich denke aber das SAP noch teurer ist. Mein Forschungsinstitut ist klein und bekommt nicht die Gelder wie große Institute. Die Gelder sind sehr begrenzt. Deshalb möchte ich umsteigen. Man ist doch irgendwie ein "Sklave" solcher Software.- das möchte ich nicht mehr sein. Ich wäre dann im Grunde auch der Admin. Im Medizinbereich ist Firebird führend.
Hauptvorteile für medizinische Anwendungen

Sicherheit und Compliance
Volle SQL-Datenbanksystem mit strenger Zugriffskontrolle
Unterstützung von SSL/TLS-Verschlüsselung
Audit-Funktionen für Nachverfolgung von Datenänderungen
Erfüllung wichtiger Sicherheitsstandards für medizinische Daten
Technische Stärken
Hohe Performance bei gleichzeitiger Nutzung durch viele Benutzer
Robuste Transaktionsverarbeitung
Automatische Wiederherstellung nach Systemausfällen
Genaue Protokollierung aller Änderungen
Deshalb Firebird und Lazarus. Das war meine ausschlaggebende Entscheidung.

Benutzeravatar
Zvoni
Beiträge: 268
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: Beispiel C/S Datenbank

Beitrag von Zvoni »

Andy Nightingale hat geschrieben: Di 4. Feb 2025, 11:53 Hallo Zvoni,
es ist nicht SAP sondern 4d.
Ist aber nicht das hier? --> https://en.wikipedia.org/wiki/4th_Dimension_(software)
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.

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Zvoni hat geschrieben: Di 4. Feb 2025, 12:43
Andy Nightingale hat geschrieben: Di 4. Feb 2025, 11:53 Hallo Zvoni,
es ist nicht SAP sondern 4d.
Ist aber nicht das hier? --> https://en.wikipedia.org/wiki/4th_Dimension_(software)
Doch genau das. Wieso? Was hast du erwartet? Grüße

Benutzeravatar
Zvoni
Beiträge: 268
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: Beispiel C/S Datenbank

Beitrag von Zvoni »

Andy Nightingale hat geschrieben: Di 4. Feb 2025, 13:42
Zvoni hat geschrieben: Di 4. Feb 2025, 12:43
Andy Nightingale hat geschrieben: Di 4. Feb 2025, 11:53 Hallo Zvoni,
es ist nicht SAP sondern 4d.
Ist aber nicht das hier? --> https://en.wikipedia.org/wiki/4th_Dimension_(software)
Doch genau das. Wieso? Was hast du erwartet? Grüße
Eher etwas wie "Wir haben diese Software, und die Datenbank ist ein MS SQL-Server"

Wenn ich das richtig interpretiere, erinnert mich das an unser eigenes ERP, wo die Datenbank als auch der Programm-code als auch die Business-Logic selbst in der Datenbank gespeichert sind (und auch von dort abgerufen werden).
Die User haben im Prinzip nichts anderes als einen "dünnen" Client,
also keine grosse EXE-Datei mit ein paar Satelliten-DLL's, und in der Datenbank selbst sind NUR die Daten

Auf Lazarus 1:1 übertragen würde das eher entsprechen: Du schreibst in Lazarus im Prinzip nur die Login-Form, vielleicht noch eine Main-Form, aber alles andere wäre als "Pascal-Script"-ByteCode in der Datenbank selbst gespeichert, welches bei jedem Aufruf aus der Datenbank gezogen wird, und dann im User-Client ausgeführt wird.
Den meisten dürfte dieser Ansatz aus MS Access bekannt sein. Da werden Formen, Reports etc. auch in der Datenbank selbst gespeichert, und zum Ausführen braucht man nur die Access-Runtime.
AUTSCH! Sowas kann ich leiden wie Bauchweh.

Auf dein "Problem" bezogen: Kommst du wenigstens an den Quellcode deiner bisherigen Anwendung ran?
Vielleicht wäre ja eine "Portierung" ein Ansatz.
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.

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Ja natürlich komme ich an den Quellcode ran. Hab ich ja selbst geschrieben. Also all die Anweisungen für die Erstellung der Endlösung. Vom Buttonklick bis zum Report usw.
Ich dachte mir eine Komplettlösung mit Firebird als Server Lösung und dann die Clients....aber wie und was.- Bahnhof :D

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6661
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: Beispiel C/S Datenbank

Beitrag von af0815 »

Ok, langsam lichten sich die Nebel in den Glaskugeln.

Nein, hier in Pascal ist alles anders und mit einfachen Komponenteninstallation ist es nicht getan. Auch wenn es von Firmen wie TMS da vielfältige Lösungen gibt, aber nicht unbedingt für dein Problem.

Bei Pascal wirst du viel einmal zu Fuß erledigen dürfen. Ja man kann auch vieles dynamisch machen, macht die Sache nicht einfacher und setzt mehr Wissen voraus. Es gibt hier keine Komplettlösung, sondern die Teile sind viel mehr getrennt. Ja es gibt FrameWorks die dich dabei unterstützen, falsch verwendet ist man rasch beim Gegenteil :-)

Am besten du nimmst dir einmal einen Teil heraus und erstellst dort etwas, mit der Erfahrung kannst du auf die nächsten Teile gehen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Danke sehr. Höre ich da heraus das es garnicht machbar ist nach deinen Erfahrungen? Du klingst nicht so das es machbar wäre.

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Soner hat geschrieben: Mo 3. Feb 2025, 23:55 Ich würde in deiner Stelle folgendes nehmen:
- Datenbank --> Firebird,
- Datenbank-Komponenten --> SQLDB oder ZEOS,
- Berichte --> LazReport + Grids + HTML + PascalScript,
- PDF --> Chromium,
- Scan --> Twain,
damit bist du sehr gut aufgehoben. Verwende kein Appserver, kommuniziere direkt mit Firebird-Server. AppServer machen Programme nur komplizierter.
Nach deiner Aufgabenstellung hier hier ist das nur ein paar Monate Arbeit, so schwer ist das nicht maximal 3-4 Monate.
Danke nochmal das du mir Mut machst. Ich denke auch das es machbar ist. Mit Euch .- wenn ich Hilfe benötige auf jeden Fall. 8)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6661
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: Beispiel C/S Datenbank

Beitrag von af0815 »

Andy Nightingale hat geschrieben: Di 4. Feb 2025, 17:32 Danke sehr. Höre ich da heraus das es garnicht machbar ist nach deinen Erfahrungen? Du klingst nicht so das es machbar wäre.
Nein, alles ist grundlegend machbar. Wenn du eine intensive Woche für eine definierte Problemstellung machst, Bsp. einfache GUI Eingabe, bringt dir einmal ein Gefühl und bessere Einschätzbarkeit.

Man kann bei Lazarus mit geschickter Planung viel Zeit und Resourcen sparen durch Vererbung und damit verbundene Templates. Beispiel ist der Login und Rechte. Weil die hast du in jedem Clientteil. Das einmal erstellt, kann wir eine Blackbox überall verwendet werden. Die Arbeit dabei ist, es einmal sauber hinzubekommen, dann ist es an einer Stelle und auch nur an einer Stelle zu Warten. Ist das Design falsch und wird wild in jedes Projekt hineinkopiert, hast du einen Wartungsirrsinn, weil jeder Bugfix überall nachgeführt werden muss, wehe du vergisst eine Stelle.

Ich habe gerne units verwendet und die Sachen wirklich gekapselt. Bei GUI gehen auch Forms zu vererben, am liebsten aber über dynamische Frames. Gerade Frames sind geschaffen für Kapselung, wenn man eine gewisse Disziplin aufbringt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 93
Registriert: Mo 13. Jan 2025, 12:11

Re: Beispiel C/S Datenbank

Beitrag von Andy Nightingale »

Ja das verstehe ich gut.- aber ich werde jetzt ehh erst die Grundlagen lernen müssen und allein das wird mich bestimmt ein Monat vielleicht zwei Kosten. Danach geht die Planung los.- wie bei meinem letzten großen Projekt mit einem anderen Tool. Ab und zu werde ich mich melden wegen Verständnisfragen, aber ich habe auch 4 Bücher gekauft und versuche erst dort alles zu lesen und durchzuarbeiten. Ich kenne das von früher. :D Pauken Pauken Pauken....

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6661
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: Beispiel C/S Datenbank

Beitrag von af0815 »

Andy Nightingale hat geschrieben: Di 4. Feb 2025, 18:20 Ab und zu werde ich mich melden wegen Verständnisfragen, aber ich habe auch 4 Bücher gekauft und versuche erst dort alles zu lesen und durchzuarbeiten. Ich kenne das von früher. :D Pauken Pauken Pauken....
Bei Lazarus ist ein großer Schatz an Beispielprojekten dabei. Schau dir mal den Ordner examples bei Lazarus an. Auch bei den Komponenten (Ordner Components) sind oft Beispiele dabei, es lohnt sich die mal durchzusehen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten