MySql + MFC: m_pSet->Edit(); ändert den Datensatz aber nicht



  • Hallo !

    Ich hab mir einen Button erstellt, da steht drin

    **void CAnhngerView::OnBUTTONEdit()
    {
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen

    m_pSet->Edit();
    UpdateData(TRUE);**

    aber er ändert den Datensatz nicht - erst wenn ich auf den Schalter " Nächster Datensatz" gehe, ändert er



  • ist zwar spät, aber muss es nicht
    UpdateData(FALSE) heissen um von variablen auf den bildschirm upzudaten???



  • Hallo !

    Das mag wohl sein, dass dieses für den Bildschirm gilt UpdateData(FALSE) - aber darum gehts nicht - es soll ja in die Datenbank geschrieben werden.

    Und das macht m_pSet->Edit(); nicht, wenn ich auf den Button drücke.

    aber gehe ich oben in der Toolbar auf einen der vier Schalter MoveFirst MoveNext MovePrev MoveLast dann speichert er richtig.



  • wie siecht Edit() aus? kannste mehr code posten?



  • wie edit aussieht ? was meinst Du damit ? - vielleicht das hier :

    **void CAnhngerView::OnBUTTONEdit()
    {
    // TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen

    m_pSet->Edit();
    UpdateData(FALSE);

    }**



  • ne, denke mal er meint das: m_pSet->Edit();



  • Ja wie solls aussehen m_pSet->Edit();

    so siehts aus, nicht AddNew nicht Delete - sondern eben Edit



  • Red Skall schrieb:

    ne, denke mal er meint das: m_pSet->Edit();

    bingo 😉

    ne sorry so kann ich dir auch nicht helfen.

    erst sagte nur dass du einen button hast wo halt was geänder wird.
    OnBUTTONEdit()

    so jetzt schreibst du darin dass es dann eine variable gibt die durch die methode Edit() geändert wird. welcher klasse gehört die Edit() an?? hast die Funktion selber geschrieben? übernommen? woher soll ich wissen was genau diese funktion falsch macht wenn ich nicht sehe was drin steht? tust du updaten auf der datenbank ( irgendwo auf server ) oder in deiner eigenen struct/klasse. erfolgt die ausgabe in der listbox? usw. haste nach dem m_pSet->Edit(); einen breakpunkt gesetzt und nachgesehen ob m_pSet verändert worden ist?

    bis jetzt sagtest du noch nichts von db system und welches db-system du meinst.
    dann tippst du UpdateData(True)
    was wahrscheinlich nicht so viel bringen wird da am schluss. und wenn du eh nichts auf dem bildschirm anzeigen lassen willst, dann kannst ja auch gleich die zeile löschen, miot updatedata().
    Dann weiss ich auch nicht ob du den neuen datensatz aus einer editbox oder sonst wo hernimmst.
    und warum die funktionen/methoden von MoveFirst und so gehen bei den buttons weiss ich auch nicht, da ich den code nicht sehe.

    sorry ist aber so. ausser ich steh irgendwie auf dem schlauch.



  • Visual C++ 6.0 starten - Datei - neu - MFC-Anwendungs-Assistent(exe) - Projektname eintragen - Weiter - Einzelnes Dokument (SDI) - Weiter - Datenbankansicht ohne Dateiunterstützung - Datenquelle - ODBC - Datenbanktabelle wählen - OK - Weiter - Fertigstellen.

    Eingabefeld erstellen mit Membervariable m_pSet->anhaenger

    Button erstellen mit m_pSet->Edit();



  • sorry
    jetzt habs ichs verstanden, lag echt auf dem schlauch

    ne die lsg weiss ich leider nicht, da ich das noch nicht gemacht habe. aber wenn du bei Edit() mal draufklicks und dann F1 drückst, muesste es gut erklärt sein was du machen musst.

    stichwort

    ----
    After you call Edit, you can change the field data members by directly resetting their values. The operation is completed when you subsequently call the Update member function to save your changes on the data source.
    ----

    weil nur mit ->Edit() ist es nicht getan.

    ich hoffe ich konnte dir etwas helfen.


Anmelden zum Antworten