AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Notifikation bei (After-)Post

Notifikation bei (After-)Post

Offene Frage von "mkinzler"
Ein Thema von DaCoda · begonnen am 19. Jan 2020 · letzter Beitrag vom 21. Jan 2020
Antwort Antwort
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#1

AW: Notifikation bei (After-)Post

  Alt 19. Jan 2020, 11:10
..."Wenn einer etwas "postet", dann sollen die anderen clients informiert werden"...
-> bitte genauer definieren!

Eine allgemeingültige Lösung, welche das komplette beliebig zusammengesetzte oder berechnete SQL-Querrys(also incl. JOINs,...) kann, um jede (Fremd)Feldänderung in beliebiger Tiefe zu erkennen und passend zu benachrichtigen grenzt fast an KI

"kleine&einfache" (Multi)Read/Write Lösungen schafft man z.B. per DBMS-TransactionCommitTrigger, oder ohne DBMS-Beteiligung wenn der "WriteClient" es selbst macht:
- im Trigger dann "ChangeEvents" jeweils als Tripple(Timestamp,Table,PrimaryKey) an eine interne zusätzliche "ChangeEventTable" anhängen
- (Read)Clients pollen(z.B. alle 10sec) dann die "ChangeEventTable" per SQL mit WEHRE auf TimeStamp>"ReadViewTime" und Table+PrimaryKey="UsedReadValues"
- in der "ChangeEventTable" wird z.B. bei jedem belibigem (Client)Programmstart stets alles gelöscht was älter wie 7Tage ist

Die "gepollten" 10sec Verzögerung sind für die meisten Client/GUI Anwendungen, welche irgendwas "dauerhaft" anzeigen akzeptabel. (klar, realtime Börsenkurse sollte man so nicht "verteilen/aktualisieren")
Klar erzeugt sowas dauerhafte zyklische Datenlast im Netzwerk der (SQL)Datenbank... entspricht also nicht der reinen Lehre... aber ich kenne "alte" Anwendungen mit Filebasierten Datenbanken(z.B. DBASE,MS-Access,SQlite), welche nach diesem Prinzip seit zig Jahren sehr stabil Laufen.


Bernhard Geyer hat mit seinem Post ja den Weg für eine "saubere Lösung" aufgezeigt, dagegen geht mein Vorschlag bewusst etwas in Richtung "Quick&Dirty"

Geändert von mensch72 (19. Jan 2020 um 11:15 Uhr)
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
187 Beiträge
 
Delphi 12 Athens
 
#2

AW: Notifikation bei (After-)Post

  Alt 19. Jan 2020, 12:50
Es war so gedacht, wenn ich auf Client A einen neuen Datensatz poste, dann müsste man ja bei z.B. Client B refresh drücken damit alles aktuell ist. Und das wollte ich über das Netz irgenwie machen, also praktisch einen refresh überall erzwingen.

FireDAC kann das mit MariaDB nicht so, man muss da selber was machen.
Deshalb überlege ich was gut ist...

Ehrlich gesagt, habe ich nicht so ganz verstanden, was Bernhard Geyer da meint...

Vielen Dank Euch !
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.233 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Notifikation bei (After-)Post

  Alt 19. Jan 2020, 13:06
Client A -> Server -> Datenbank

Server -> Client B Info über Update
-> Client C Info über Update

Oder wenn das für dich so wichtig ist, schreib gleich einer Webanwendung.
Dann kannst du das alles Anwendungsintern zwischen den Session machen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
187 Beiträge
 
Delphi 12 Athens
 
#4

AW: Notifikation bei (After-)Post

  Alt 19. Jan 2020, 17:28
Würde der EventAlerter funktionieren für diese Aufgabe, wenn ich MSSQL 2017 Express nehmen würde ?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#5

AW: Notifikation bei (After-)Post

  Alt 20. Jan 2020, 06:11
Moin...
Zitat:
kann ich weder MariaDB noch MySQL finden
... Ich wußte schon warum ich um MySQL immer einen Bogen gemacht habe.
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Notifikation bei (After-)Post

  Alt 20. Jan 2020, 06:35
Würde der EventAlerter funktionieren für diese Aufgabe, wenn ich MSSQL 2017 Express nehmen würde ?
Nimm PostgreSQL damit gehts definitiv.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#7

AW: Notifikation bei (After-)Post

  Alt 20. Jan 2020, 06:58
Vielleicht muss es ja keine aktive Info an die Clients sein. Der Client weiß ja eigentlich, ob er an einer Stelle ist, wo es gut wäre, wenn die Daten aktuell sind + er daher selbst nachschaut.

Im einfachsten Fall hast du in deiner DB daher eine Tabelle mit Arbeitsplatz + einem Schalter aktuell J/N. Wenn ein Client etwas postet, setzt er alle Schalter auf N, seinen eigenen auf J. Jeder Client kann also immer nachschauen, ob er aktuelle Daten hat, bei N, holt er sich die + setzt auf J. Kann man auch granularer ausgestalten.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#8

AW: Notifikation bei (After-)Post

  Alt 20. Jan 2020, 10:46
Ja, Postgres und andere DBMS bieten Notifications, die man z.B. in einem Trigger auslösen und auf welche das Programm reagieren kann.
https://www.postgresql.org/docs/current/sql-notify.html

Wenn MariaDB sowas nicht bietet, dann muß entweder dein Programm regelmäßig den Inhalt prüfen (pollen), bzw. du benötigst eine Zwischenschicht, welche das für dich macht.
Je mehr Clients, um so besser wäre da ein zwischengeschalteter Dienst, der nur einmal abfragt und die Clients informiert, anstatt jeder Client das selbst macht. (ganz viele Anfragen von vielen Clients)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (20. Jan 2020 um 12:55 Uhr)
  Mit Zitat antworten Zitat
DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
187 Beiträge
 
Delphi 12 Athens
 
#9

AW: Notifikation bei (After-)Post

  Alt 21. Jan 2020, 06:08
Vielen Dank für die vielen Hilfestellungen

Ich denke ich teste mal PostgresSQL, eventuell erspare ich mir damit die Zwischenschicht etc.


Vielen, vielen Dank Euch !
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Notifikation bei (After-)Post

  Alt 21. Jan 2020, 07:06
Zitat:
Ich denke ich teste mal PostgresSQL, eventuell erspare ich mir damit die Zwischenschicht etc.
Es gibt auch andere Gründe für eine Zwischenschicht.

Weitere DBMS-Alternativen wären IB/FB, Ingres, ...
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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-2025 by Thomas Breitkreuz