Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: InterBase: lock conflict on no wait transaction violation of FOREIGN KEY constrai

  Alt 24. Apr 2017, 14:24

Der einzige Workaround (ausser dem etwas wackligen "so lange versuchen, bis das INSERT klappt") den ich ausprobieren könnte wäre der Verzicht auf die Foreign Key Constraint in der Detailtabelle. Mich wundert nur, dass dieses Problem nicht öfter beobachtet wird. Vielleicht gibt es zu wenige InterBase Datenbanken, in denen mit Foreign Key Constraint gearbeitet wird. Oder neuere Versionen arbeiten etwas schmerzfreier.
Damit hättest Du ja alles über Bord geworfen, das den Sinn des Constraint ausmacht.
Ich vermute, dass Constraints relativ wenig genutzt werden, spätestens wegen Problemen wie diesem (oder weil der Entwickler sich noch an sowas erinnert, auch wenn es ein anderes / älteres System war). Hinzu kommt, dass eine fachliche Komponente mitschwingt. Wenn die Software irgendwelche Sachbearbeitung macht und das hängt an einer Vertragsnummer oder Rechnungsnummer oder so, ist ein Konflikt relativ unwahrscheinlich.
Geht es um Produkt oder Bestelldaten, und es wird bspw. die items on stock property häufig geändert, dürften viel mehr solche Fälle auftreten.
Ein filigranerer Sperrmechnismus würde auch helfen. Vielleicht geht es ja bei neueren Versionen.
Gruß, Jo
  Mit Zitat antworten Zitat