Xong hat folgendes geschrieben: |
Hallo,
ich arbeite mit zwei MSSQL-Tabellen. Die eine (Tabelle DATEN) enthält u.a. die Spalte IDNR, welche die Identitätsspalte ist.
Die zweite Tabelle (Tabelle DATENZUSATZ) enthält einen Fremdschlüssel, der auf diese IDNR verweist. Auch dieser ist die Identitätsspalte (also eine 1:1-Relation).
Möchte ich in meinem Programm allerdings einen Wert in DATENZUSATZ mithilfe der Post-Methode einer TADODataSet-Komponente ändern, kommt folgende Fehlermeldung: "Nicht genügend Schlüsselfeldinformationen zum Aktualisieren".
Datensätze in der Tabelle DATEN werden ohne Fehlermeldung übernommen.
Führe ich das UPDATE von Hand aus, funktioniert alles ohne Probleme.
Ich nehme an, dass dies ein Bug der ADO-Komponenten ist. Allerdings ist es ja auch möglich, dass ich einen Fehler mache.
Weiß jemand, wie ich den Fehler möglichst einfach verhindern kann?
Oder muss ich das UPDATE wirklich explizit ausführen?
Ich hoffe, ich konnte mein Problem deutlich machen.
So long,
Xong |
Hallo,
in der Tat kann es sich hier um einen AdO-Fehler handeln.
Ich hatte das gleiche Problem, und habe nach langem suchen einen Thread gefunden, der eben aussagt, das ADO zwar die Zeilen aktualisiert, aber nach dem neu Einlesen der Zeilen den Bezug nicht mehr herstellen kann.
Warum das so ist, und ob deine(!) Daten dadurch inkonsistent werden weiß ich nicht.
Ich habe bei mir ein Try-Except drüber gelegt, und alles läuft seit Jaren wunderbar.
Sieh mal nach, ob trotz Fehlermeldung, deine Daten richtig in der MS-Datenbank stehen.
Erich