Announcement

Collapse
No announcement yet.

Fehler: Datensatz kann nicht gesperrt werden, ...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fehler: Datensatz kann nicht gesperrt werden, ...

    Hallo

    ich arbeite mit Delphi3CS und SQL-Server7. Beim Table1.Post erhalte ich den Fehler:
    Datensatz kann nicht gesperrt werden, da der Datensatz von einem anderen Benutzer geändert wurde.

    Auf dem Formular gibt es noch ein Grid, Navigator,... die mit der Tabelle verbunden sind.
    Vor Änderungen habe ich: Table1.DisableControls.

    Die Verbindung der Table zum SQL-Server erfolgt über eine Database (wegen des Login-Vorgangs).

    Woran kanns liegen? Bin für jeden Tipp dankbar.

    Uwe

  • #2
    Hallo,

    welche Datentypen werden für die Spalten der Tabelle verwendet? Die BDE ist aufgrund der von Microsoft getroffenen Festlegung, ab dem SQL Server 7 die alte DBLib-Schnittstelle nicht mehr zu aktualisieren, nicht mehr vollständig für die 7er Version geeignet. Microsoft unterstützt nur noch 2 Schnittstellen: ADO und ODBC. Dies führt dazu, das bei "inkompatiblen" Datentypen sowie bei Zugriff auf <b>DATETIME</b> die BDE ins Leere greift, weil nicht mehr die exakt gleichen Werte für die UPDATE-Anweisung verwendet werden. Zum Beispiel gibt es bei DATETIME-Werten einen "Rundungsfehler" von einigen Millisekunden, so dass der SQL Server 7 den zu aktualisierenden Datensatz nicht mehr finden kann - was zu der o.g. Fehlermeldung führt.

    Wenn die Tabellenstruktur nicht angepasst werden kann/soll, würde ich notfalls auf die Konfiguration <b>UpdateMode = upWhereKeyOnly</b> zurückgreifen. In diesem Fall versucht die VCL den zu aktualisierenden Datensatz nur über den Primärschlüssel zu finden (und dieser wird ja hoffentlich ein INTEGER sein).
    &#10

    Comment

    Working...
    X