Forum: Datenbanken
by BlueStarHH,
29. Mär 2018
Das passiert alles unterbrechungsfrei in einem Vorgang. (Es gibt ja das selbe Problem mit den Notizen und da wird sich nichts "gemerkt"). Statt gemerkt hätte ich schreiben sollen: Wird in einer Variable zwischengespeichert. Hier nochmal der Code auszug von weiter oben mit der Ergängung wo die ERSETZTRGNR her kommt:
procedure AktuelleRechnungErsetzen;
var
ErsetztRgNr: String;
begin
...
Forum: Datenbanken
by BlueStarHH,
29. Mär 2018
Ob da noch deadlock am Anfang der Meldung stand oder nicht kann ich nicht mit Sicherheit sagen. Ich werde dazu mal ein Log-Mechanismus einbauen, der diese Meldungen in eine Log-Datei schreibt. Dann geht man nicht in Gefahr, dass die Anwender einen Teil der Meldung unterschlagen.
Kann es den wirklich vorkommen, dass der Meldungstext "deadlock" noch um weitere Details ergänzt wird? In der Doku...
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Gerade nochmal gecheckt: die Rechnung 4 ist momentan da. Sie kann auch nicht gelöscht und wieder angelegt werden, da der Generator dann um eins weiter ist und die Rechnungsnummer sich erhöht hätte. Die wäre dann nicht mehr auf 4 und es gäbe eine Lücke.
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Auf einem PC kann das Programm nur 1x gestartet werden. Eine zweite Session vom selben Anwender auf dem selben PC ist damit nicht möglich.
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Die alte Rechnung wird nicht gelöscht und ist auch noch da. Alle Datensätze sind vorhanden. Sie könnten auch nicht gelöscht und wieder angelegt werden, da der Generator dann um eins weiter ist und die Rechnungsnummer sich erhöht hätte.
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Nein, 5 und 4 haben nichts miteinander zu tun.
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Kunden und Rechnungen sind je eine TIBCQuery
Notizen ist eine IBCTable
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Der Benutzer kann in die Schlüssel-Varchar-Felder nichts eingeben. Die Werte kommen aus einem Generator. Ob das gut ist oder nicht und warum das so ist, sollte nichts mit meinem Problem zu tun haben. Bitte den Thread aufgrund der Lesbarkeit nicht mit einer Diskussion darüber "aufblasen". Danke!
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Für die Rechnung:
if InsertAtBegin then
begin
Rechnungen.First;
Rechnungen.Insert;
end
else
Rechnungen.Append;
Rechnungen.FieldByName('RgNr').asString := GetNewRgNr;
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Beide Benutzer arbeiten mit unterschiedlichen Rechnungen (4 und 5). Wie sollte das alt vs. neu also hier hereinspielen?
Forum: Datenbanken
by BlueStarHH,
28. Mär 2018
Ich habe u.a. 3 Tabellen
Kunden
---------------
KdNr
...
Rechnungen
---------------
KdNr -> FK auf Kunden.KdNr