bigpoint Geschrieben 9. Dezember 2002 Teilen Geschrieben 9. Dezember 2002 Hallo, ich greife auf DB mit ADO zu es funktioniert alles wunderbar bis auf Delete() hier Quelcode: void lala::Delete() { try { // Aktuellen Datensatz aktualisieren m_piAdoRecordBinding->Update(&m_rsRecSet); // Kann ein Datensatz gelöscht werden? if (m_pRs->Supports(adDelete)) { // Nachfragen, ob Benutzer wirklich diesen Datensatz löschen will if (AfxMessageBox("Diesen Datensatz wirklich löschen?", MB_YESNO | MB_ICONQUESTION) == IDYES) { // Datensatz löschen m_pRs->Delete(adAffectCurrent); // Aktuellen Datensatz aktualisieren m_pRs->MoveLast(); } } } // Fehler? catch (_com_error &e) { // Fehlermeldung generieren GenerateError(e.Error(), e.Description()); } } bei Delete ist es so das ich kann zwar den Datensatz löschen aber im Dialog entweder wird er angezeigt oder springt zwei weiter das heißt wenn ich die Nr 6 lösche und m_pRs->MoveLast(); benutze springt er auf 4 sonst bleibt er auf 6 stehen habe alles versucht auch UpdateData(FALSE); usw. hilft aber nichts ;-(((((( Ich arbeite mit SDI [edit: bitte die Code-Tags verwenden, damit die Einrückung erhalten bleibt | Klotzkopp] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 9. Dezember 2002 Teilen Geschrieben 9. Dezember 2002 Das scheint so weit in Ordnung zu sein. Mit Anzeigen hat der gezeigte Code auch nichts zu tun. Machst Du an anderer Stelle vielleicht noch ein MoveNext oder MovePrevious? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 10. Dezember 2002 Autor Teilen Geschrieben 10. Dezember 2002 Originally posted by Klotzkopp Das scheint so weit in Ordnung zu sein. Mit Anzeigen hat der gezeigte Code auch nichts zu tun. Machst Du an anderer Stelle vielleicht noch ein MoveNext oder MovePrevious? Ja beides und zwar in eigenem Methoden so: void laladoc::MovePrevious() { if(m_pRs->BOF == FALSE){ try { // Aktuellen Datensatz aktualisieren m_piAdoRecordBinding->Update(&m_rsRecSet); // Zum vorherigen Datensatz gehen m_pRs->MovePrevious(); } // Fehler? catch (_com_error &e) { // Fehlermeldung generieren GenerateError(e.Error(), e.Description()); } }else AfxMessageBox("Sie haben den ersten Datensatz erreicht"); } void lalaDoc::MoveNext() { try { // Aktuellen Datensatz aktualisieren m_piAdoRecordBinding->Update(&m_rsRecSet); // Zum nechsten Datensatz gehen m_pRs->MoveNext(); if (m_pRs->EndOfFile){ AfxMessageBox("Sie haben den letzten Datensatz erreicht"); m_pRs->MoveLast(); } } // Fehler? catch (_com_error &e) { // Fehlermeldung generieren GenerateError(e.Error(), e.Description()); } aber ich verstehe nicht was kann es damit zu tun haben ??? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.