Hallo zusammen,
ich habe seit einiger Zeit das Problem, dass es immer wieder vorkommt dass beim Speichern einer Änderunge eines Datensatzes ein Timeout kommt. Als ich der Sachen nun nachgegangen bin, konnte ich feststellen, dass dies auch auftritt, wenn ich die Änderung direkt im SQL Server Mangement Studio vornehme. Auch ist das Verhalten unabhängig von der Server-Version. Bis gestern hatten wir mit SQL 2005 gearbeitet, seit gestern arbeiten wir mit SQL 2008 R2.
Ich lasse mir die Daten z.B. mit
anzeigen. Danach trage ich z.B. in der Spalte KomNr einen Wert ein und wechsle in die nächste Zeile. Das klappt bei ein paar Zeilen und dann kann ein ganzer Block kommen, bei dem folgenden Fehlermeldung kommt:
Wechselt man danach auf einen Datensatz der vorher ging, geht der auch weiterhin und die Änderungen sind auch in der BD hinterlegt. Der gesperrte Block lässt sich aber oft erst nach Stunden oder am nächsten Tag wieder bearbeiten.
Wodurch kann es vorkommen, das ganze Blöcke (Datensatzbereiche) gesperrt sind. Es ist sicher, dass es nicht ganze Blöcke sind, die so auch angelegt wurden, zumal das Anlegen oft Wochen her ist.
Wie kann man feststellen, welche Datensätze gesperrts sind
Wie kann man die Sperrung aufheben?
Ich erzeuge die Daten mit Delphi XE, UniDac 3 und verwende dort TUniQuery.Insert, .Edit, .Post. Das Seltsame ist aber wie gesagt, dass nur ein Teil des mal angelegten Serien-Nr.-Bereichs gesperrt ist.
Vielen Dank für eure Unterstützung
Gerd
ich habe seit einiger Zeit das Problem, dass es immer wieder vorkommt dass beim Speichern einer Änderunge eines Datensatzes ein Timeout kommt. Als ich der Sachen nun nachgegangen bin, konnte ich feststellen, dass dies auch auftritt, wenn ich die Änderung direkt im SQL Server Mangement Studio vornehme. Auch ist das Verhalten unabhängig von der Server-Version. Bis gestern hatten wir mit SQL 2005 gearbeitet, seit gestern arbeiten wir mit SQL 2008 R2.
Ich lasse mir die Daten z.B. mit
Code:
SELECT TOP (200) ID, SerNr, Typ, KomNr, KomNrPos, KomNrOld, BA, BaPos FROM Ser_Nr WHERE (SerNr > 'IN010990')
Es wurde keine Zeile aktualisiert
Die Daten in Zeile 7 wurden nicht bearbeitet
Fehlerquelle: .NET SQL Client Data Provider
Fehlernachricht: Timeout ist abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht
Die Anweisung wurde beendet
Die Daten in Zeile 7 wurden nicht bearbeitet
Fehlerquelle: .NET SQL Client Data Provider
Fehlernachricht: Timeout ist abgelaufen. Das Zeitlimit wurde vor dem Beenden des Vorgangs überschritten oder der Server reagiert nicht
Die Anweisung wurde beendet
Wodurch kann es vorkommen, das ganze Blöcke (Datensatzbereiche) gesperrt sind. Es ist sicher, dass es nicht ganze Blöcke sind, die so auch angelegt wurden, zumal das Anlegen oft Wochen her ist.
Wie kann man feststellen, welche Datensätze gesperrts sind
Wie kann man die Sperrung aufheben?
Ich erzeuge die Daten mit Delphi XE, UniDac 3 und verwende dort TUniQuery.Insert, .Edit, .Post. Das Seltsame ist aber wie gesagt, dass nur ein Teil des mal angelegten Serien-Nr.-Bereichs gesperrt ist.
Vielen Dank für eure Unterstützung
Gerd
Comment