Ich mache momentan ein Redesign eines alten Turbopascal Multiuser Warenwirtschaftssystem unter D7, IBObjects und Firebird SQL Server.
Ich habe aber ein großes Problem mit der Aktualisierung der Recordsets bei Änderungen durch andere User. Die nativen IBObjects Komponenten funktionieren soweit ausgezeichnet, sind schnell, kümmern sich um die Transaktionen etc. Sie emulieren auch ein Pessimistic Locking bei Editierung eines Datensatzes mit vorhergehender Syncronisierung.
ABER (und hier liegen meine Probleme):
1. Wie bilde ich Einzelsatz-Verarbeitung nach? D.h. es wird immer nur ein Datensatz in einem Formular angezeigt und eventuell bearbeitet. Der Anwender soll dann einfach vor/zurückblättern können bzw. durch einfache Suchfunktionen Datensätze finden.
Die Suchfunktionen bzw. IB_Navigation funktionieren immer nur mit dem aktuellen Select Befehl und nicht auf die wirklich aktuellen Daten
2. Wie aktualisiere ich den Select, um z.B. Änderungen anderen Anwender zu erfassen?
Jedesfall ein Refresh auf "select * from Adressen" kann es ja nicht sein. Steht man mit seiner aktuell bearbeiteten Karte am Ende der aktuellen Sortierung wird jedesmal fast die komplette Tabelle aktualisiert und zum Client übertragen.
Ich brauche doch aber nur den einen aktuellen Datensatz. Wenn der Anwender blättert nur den folgenden bzw. vorherigen. Und bei den Suchen-Funktionen nur den am Besten passenden Datensatz um hiernach eventuell vom Anwender vor/zurückblättern zu können.
Ein paar Tips zu möglichen Lösungsansätzen wären sehr hilfreich für mich.
Vielen Dank
Gunther
Ich habe aber ein großes Problem mit der Aktualisierung der Recordsets bei Änderungen durch andere User. Die nativen IBObjects Komponenten funktionieren soweit ausgezeichnet, sind schnell, kümmern sich um die Transaktionen etc. Sie emulieren auch ein Pessimistic Locking bei Editierung eines Datensatzes mit vorhergehender Syncronisierung.
ABER (und hier liegen meine Probleme):
1. Wie bilde ich Einzelsatz-Verarbeitung nach? D.h. es wird immer nur ein Datensatz in einem Formular angezeigt und eventuell bearbeitet. Der Anwender soll dann einfach vor/zurückblättern können bzw. durch einfache Suchfunktionen Datensätze finden.
Die Suchfunktionen bzw. IB_Navigation funktionieren immer nur mit dem aktuellen Select Befehl und nicht auf die wirklich aktuellen Daten
2. Wie aktualisiere ich den Select, um z.B. Änderungen anderen Anwender zu erfassen?
Jedesfall ein Refresh auf "select * from Adressen" kann es ja nicht sein. Steht man mit seiner aktuell bearbeiteten Karte am Ende der aktuellen Sortierung wird jedesmal fast die komplette Tabelle aktualisiert und zum Client übertragen.
Ich brauche doch aber nur den einen aktuellen Datensatz. Wenn der Anwender blättert nur den folgenden bzw. vorherigen. Und bei den Suchen-Funktionen nur den am Besten passenden Datensatz um hiernach eventuell vom Anwender vor/zurückblättern zu können.
Ein paar Tips zu möglichen Lösungsansätzen wären sehr hilfreich für mich.
Vielen Dank
Gunther
Comment