DBEdit speichert nicht immer



  • Hallo

    ich hab eine MS Access Datenbank über ADOQuery an mein Programm connected.
    Alles funktioniert normal, wenn die Daten von Hand eingegeben werden.
    Ich möchte jedoch auch dies machen:

    Datasource2->Edit();
    DBEdit3->Text = "blabla";
    Datasource2->DataSet->Post();
    

    Das Blabla wird angezeigt, auch in einem zugehörigen DBGrid, aber nicht in der Datenbank gespeichert.

    Danke schon mal.
    Rudi



  • Jetzt hab ich noch folgendes probiert:

    Wenn ich nach obiger automatischen Änderung noch eine manuelle Änderung in einem andern DBEdit mache, wird im Navigator der Post-Button aktiviert. Nach drücken desselben wird alles richtig gespeichert.

    Die Frage ist wohl, warum bewirkt das ADOQuery->Dataset->Post() nichts?

    'tschuldigung: ich hab hier immer ADOQuery geschrieben aber natürlich DataSource programmiert....bin schon ganz verwirrt 🤡 🤡



  • Datasource2->Edit();
    Datasource2->DataSet->FieldValues["feldname"] = "blabla";
    Datasource2->DataSet->Post();
    

    Kaum hab ich das DBEdit rausgeschmissen, schon funkts.
    Ist mir aber trotzdem ein Rätsel, warum dieses eine DBEdit nicht wollte.

    Naja, viele wege führen nach Rom. 😉



  • Wenn du von Hand etwas ins DBEdit eingibst, dann änderst du damit die Query und du kannst mit Post() diese Änderung in deiner Datenbank speichern. Wenn du aber das DBEdit über Programmcode änderst, änderst du nicht die zwischengespeicherte Query, deshalb bringt das Post() auch nix 😉


Anmelden zum Antworten