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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...