Esprimo due opinioni riguardo la questione.
Innanzitutto, secondo il mio punto di vista, è un grande spreco utilizzare un database client/server SQL per scambiare un semplice messaggio tra più utenti appartenenti ad una rete: sarebbe più consono utilizzare direttamente socket di rete attraverso i componenti Indy e realizzare un apposito sistema di chat che viaggi in modo del tutto separato dall'editing del database che dovrebbe essere esclusivamente riservato ai problemi gestionali.
In secondo luogo, la visibilità o meno di dati inseriti, cancellati o modificati dipende dal livello di isolazione scelto per le transazioni; ad esempio, potrebbe essere necessario eseguire una Commit della transazione in cui hanno luogo le memorizzazioni dei messaggi per poterle rendere visibili a tutti gli utenti.
Lasciamo stare quello che è possibile fare con Access e non paragoniamolo minimamente a FireBird (non a Delphi, poichè è solo un compilatore e un linguaggio, quindi le possibilità sono determinate tutt'al più dalle tecnologie utilizzate: librerie, piattaforme, basi di dati, ecc.).
Io comunque spingerei sulla prima strada che ti ho indicato, obiettivamente anche per un motivo di performance, oltrechè per un motivo di logica, senza contare quanta memoria viene sprecata sul server con transazioni perennemente aperte per supportare l'invio e la ricezione di messaggi.
Nello sviluppare applicazioni, io mi sto sempre più orientando verso modalità disconnesse, cioè approcci che prevedono lo scaricamento dei dati necessari dal server e il loro upload (attraverso opportuni statement SQL) solo in fase di conferma, tenendo la transazione il più corta possibile, per risparmiare memoria sul server e ottimizzare il traffico di rete, nonchè incrementare le prestazioni dei programmi.
Spero di averti fornito indicazioni utili, anche se forse non è la soluzione diretta del tuo quesito.![]()
Ciao!![]()