Entwickler-Ecke
Datenbanken - Nicht genügend Schlüsselfeldinformationen zum Aktualisieren
Xong - Mo 04.02.08 10:11
Titel: Nicht genügend Schlüsselfeldinformationen zum Aktualisieren
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
Erichgue - Mo 04.02.08 11:00
Titel: Re: Nicht genügend Schlüsselfeldinformationen zum Aktualisie
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
Xong - Mo 04.02.08 11:22
Mit try-except kommt keine Fehlermeldung mehr, aber die Daten stehen leider nicht in der Datenbank.
Ich werde wohl den SQL-Code von Hand schreiben müssen. Ist zwar etwas mehr Arbeit, aber die ist auch noch zu verkraften!
Danke für deine Hilfe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!