Announcement

Collapse
No announcement yet.

Fehler: row cannot be located for updating. Some values may have been changed since it was last read

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

  • Fehler: row cannot be located for updating. Some values may have been changed since it was last read

    Hallo,

    ich arbeite mit D7 und verwende TBetterAdoDataset fuer den Zugriff auf MSSQL-Server.

    Weitere Eigenschaften des TDataset:
    CursorLocation: clUseClient
    CursorType: ctStatic

    In der Testumgebung laeft das Programm normal.

    Wenn ich nun meine Applikation auf einem Rechner installiere, auf dem das MSDE installiert ist, dann erhalte ich beim Arbeiten, spez. Editieren von Daten, beim 2. Versuch die Daten zu Posten, obige Fehlermeldung.

    Wie gesagt unter SQL-Server 7 tritt dieses Problem mir der selnen Anwendung und den selben Daten nicht auf.

    Kann mir dazu jemand weiterhelfen.

    Danke im voraus
    Juergen

    Zusatzinformation:

    Betriebssystem ist WinXP SP2.

    Bei Tests unter SP1 tritt das Problem nicht auf!?

  • #2
    Zusatzinformation:

    MSDE SP3a

    Betriebssystem WinXP SP2: hier treten die Fehler auf.

    Unter WinXP SP1 mit der selben Konstallation nicht

    Comment


    • #3
      Hallo,

      das Recordset-Objekt von ADO generiert die UPDATE-Anweisungen erst zur Laufzeit. Die o.g. Fehlermeldung erscheint immer dann, wenn der SQL Server in seiner Datenmenge keinen zur WHERE-Einschränkung der UPDATE-Anweisung passenden Treffer gefunden hat. Als Ursache kommen oftmals Trigger oder sonstige Rundungsfehler in Frage.

      Über die Eigenschaft <b>'Update Criteria'</b> kann man als WHERE-Einschränkung nur den Primärschlüsselwert zulassen:
      <pre>
      with ADODataSet1.Recordset do begin
      Properties['Update Criteria'].Value := adCriteriaKey;
      end;
      </pre>
      Solange beim Primärschlüssel der Tabelle keine Rundungsfehler möglich sind, sollte dann das Update in jedem Fall erfolgreich sein

      Comment

      Working...
      X