Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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]

Geschrieben
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 ???

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...