AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenbankanwendung Firebird und Zeos

Datenbankanwendung Firebird und Zeos

Ein Thema von waldforest · begonnen am 25. Dez 2011 · letzter Beitrag vom 8. Jan 2012
Antwort Antwort
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#1

Datenbankanwendung Firebird und Zeos

  Alt 25. Dez 2011, 18:09
Datenbank: Firebird • Version: 2.1 • Zugriff über: Zeos 6.6.6
Hallo,
ich bin dabei eine Lagerverwaltung mit Firebird und Zeos auf Muliuserbetrieb umzustellen.

Die Daten werden über eine zQuery im Grid dargestellt. Nun habe ich das Problem, dass wenn z.B. user 1 die Lagermenge von Artikel x ändert, der aktuelle Bestand bei user 2 nicht dargestellt wird.

Wie realisier ich die automatische Datenaktualisieung der queries vers. der Grids bei allen Usern ?
Ich muss verhindern, dass z.B. durch ein Datenkorrektur des gleichen Artikels bei einem Anderen Users, die zuvor erfolgte Änderung mit berücksichtigt wird.
(z.B. Lagerstand des Artikels ist 25,
User 1 erhöht die Lagermenge des Artikels um 10,
User 2 um weitere 5,
Gesamtlagermenge sollte dann 40 sein.

Aktuell wird bei mir leider die Datenmenge des Users 2 auf den eingelesenen Datenstand (25) um 5 erhöht und nicht auf den tatsächlichen 35.

Wie komme ich an den aktuellen Lagestand vor der Erhöhung ?
Hat jemand eine Beispiele für eine derartige Anwendung parat, ich komme hier dezeit nicht weiter ?

TZConnection wie folgt eingestellt.
Autocommit = True
TransactIsolatio= tiReadCommitted
mfg wf
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Datenbankanwendung Firebird und Zeos

  Alt 25. Dez 2011, 18:46
Verschiebe die Arbeit auf den Server. Erstelle eine StoredProc "Lagermenge ändern". Parameter: Artikel und Wert um den die Menge geändert wird. Vom Client rufst Du nur noch die Stored Proc auf. So ist sichergestellt, dass immer mit den aktuellen Daten gerechnet wird. Das berechnen der neuen Lagermenge (Lagermenge lesen, Wert addieren, Wert zurückschreiben) darf halt nicht die Client machen.
Du kannst es auch in einem UPDATE machen. UPDATE ARTIKEL SET LAGERBESTAND = LAGERBESTAND + 5;
Jens
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Datenbankanwendung Firebird und Zeos

  Alt 25. Dez 2011, 19:26
Danke,
der Tipp mit Stored Proc hat mich in Bezug auf Speicherung genau auf den richtigen Weg gebracht.

Nun muss ich nur noch für die Aktualisierungung der Grids sorgen.
mfg wf
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: Datenbankanwendung Firebird und Zeos

  Alt 8. Jan 2012, 18:41
Nun muss ich nur noch für die Aktualisierungung der Grids sorgen.
Kleiner Tip: ZIBEventAlerter
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#5

AW: Datenbankanwendung Firebird und Zeos

  Alt 8. Jan 2012, 19:10
Im Falle von IBObjects gäbe es hier etwas Fertiges, was sich DML Caching nennt. Hatte das hier mal beschrieben und wie man vor allem das Global DML Caching aufsetzt. http://www.upscene.com/products.audi...ching_main.php
  Mit Zitat antworten Zitat
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 08:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf