Forum: Datenbanken
Delphi
by mjustin,
12. Mai 2009
Wenn zwei Clients gleichzeitig einen neuen Satz in der gleichen Tabelle einfügen, und der Insert-Trigger dann die Satzzahl in der Satzzahl-Hilfstabelle um eins erhöhen will, dann sind das zwar zwei getrennte Inserts (daher natürlich auch kein Deadlockrisiko), aber dennoch zwei konkurrierende Updates auf einen Satz der Hilfstabelle. (Es sei denn, die Hilfstabelle enthält für jede *Transaktion*...
Forum: Datenbanken
Delphi
by mjustin,
11. Mai 2009
Count läuft innerhalb der Transaktion. Verschiedene Transaktionen können daher zu unterschiedlichen Ergebnissen (Anzahl Sätze) kommen. 'Die' Anzahl Sätze ist also relativ zur Transaktion zu sehen. Wenn ein Programm sich nur mit der Datenbank verbindet, eine Anfrage mit Select Count(*) macht und dann die Verbindung trennt, ist die erhaltene Information in der nächsten Nanosekunde natürlich schon...
Forum: Datenbanken
Delphi
by mjustin,
11. Mai 2009
Hat einen Haken: Generatoren laufen ausserhalb von Transaktionen. Wenn also ein Satz gelöscht wird, wird der neue Generatorwert sofort für alle Transaktionen sichtbar - also schon vor dem Commit. Wenn die Transaktion dann ein Rollback macht, und damit das Löschen des Satzes (im Before Delete oder After Delete Trigger) verwirft, steht der falsche Wert noch im Generator. Auch bei After Delete ist...
Forum: Datenbanken
Delphi
by mjustin,
11. Mai 2009
Zwei Clients sind manchmal schon einer zuviel :)
Forum: Datenbanken
Delphi
by mjustin,
11. Mai 2009
Könnte es bei vielen gleichzeitigen Inserts dabei nicht Probleme geben, auch wenn die Anwendungen mit Transaktionen arbeiten?