Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#1

Ein Datensatz wird ausgewählt, mehrere geändert, warum?

  Alt 25. Okt 2006, 10:47
Datenbank: MS SQL • Version: 2000 • Zugriff über: ADO
Moin Zusammen,

um bei einem Datensatz den Status zu aktualisieren verwende ich folgenden Aufruf:

Delphi-Quellcode:
  rsWork := TADODataSet.Create(nil);
  try
    rsWork.ParamCheck := false;
    rsWork.Connection := DM.conTravelDB;
    sQuery := 'SELECT [completed],[storniert] FROM [traveltrip_SAP] WHERE [id]=' + FsTripID;
    if not DoQuery(sQuery,rsWork) then Exit;
    try
      rsWork.Edit;
      rsWork.FieldValues['completed'] := BooleanToField(true);
      rsWork.FieldValues['storniert'] := BooleanToField(false);
      rsWork.Post;
    finally
      rsWork.Close;
    end;
  finally
    FreeAndNil(rsWork);
  end;
Der Wert in FsTripID ist die Caption einer Listview-Zeile, und enthält eine ID, ausserdem ist [id] der Primärschlüssel der Tabelle.
Sobald diese Routine aufgerufen wird, werden (angeblich) manchmal mehrere Sätze geändert.
Betroffen sind Sätze, bei denen das Feld [completed] ungleich NULL ist (kann dann noch 1 oder 0 sein), das Feld [storniert], und ein weiteres Feld gleich 0 oder gleich NULL sind.
Noch eine Erklärung zu dem "angeblich":
Bei zwei verschiedenen Personen auf zwei verschiedenen Rechnern soll dies aufgetreten sein, auf meinem Rechner kann ich das leider nicht reproduzieren.
Allerdings habe ich auch keinen Grund anzunehmen, dass es bei den Betroffenen nicht wie beschrieben passiert ist.

Hat jemand irgendeine Idee, was an der obigen Routine diesen Fehler verursachen kann?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat