DBMemo



  • Hallo Leute,

    ich habe ein Problem mit meinem DBMemo. Ich will die Daten aus dem Memo wieder zurück in die Access-Datenbank schreiben und da bekomme ich immer den Fehler "nicht genügend Schlüsselfeldargumentationen zum aktualisieren".
    Ich schreibe die Daten in die DB mit

    Form1->ADODataSet4->Edit();
       Form1->ADODataSet4->FieldByName("Feldname")->Value=DBMemo1->Text;
       Form1->ADODataSet4->Post();
    

    Kann mir jemand helfen, was ich falsch mache? Der Felddatentyp in der DB ist Memo. Muss ich da statt Value bei FielByName etwas anderes nehmen?

    Besten Dank schon mal



  • Ich vermute, du hast mehrere identische Datensätze in der Tabelle. Wenn du nun einen Datensatz ändern willst, kann die Datenbank die Datensätze nicht unterscheiden und wirft nen Fehler.
    Falls das die Fehlerursache sein sollte, hast du soweit ich sehe zwei Möglichkeiten:
    1. Du fügst eine ID zur Tabelle hinzu, z.B. einen Integer mit Autoinkrement. Dadurch unterscheiden sich alle Datensätze, egal ob sie sonst gleichen Inhalt haben.
    2. Du änderst alle Datensätze gleichen Inhalts mit einem update-Kommando.



  • Besten Dank für die schnelle Antwort.
    An identischen Datensätzen kann es nicht liegen, habe auch mal andere Werte eingetragen und damit habe ich den gleichen Fehler.
    Wenn ich den Felddatentyp des Feldes in der DB von Memo auf Text ändere funktioniert es problemlos. Aber ich brauche mehr als 255 Zeichen und das geht ja nur mit Memo. Was kann ich denn bei FieldByName statt Value noch angeben?

    Viele Grüße



  • Was für eine Datenbank verwendest du denn?

    Edit: Achso, Access. Kann ich nicht wirklich weiterhelfen.


Anmelden zum Antworten