Ich hab folgendes Problem:
Ich hab eine Dialogbasierende Anwendung und verwende die ADO-Schnittstelle.
Durch die Methoden MoveFirst, MoveLast, MovePrevious und MoveNext kann ich durch meine Datenbank navigieren und Datensätze anzeigen lassen.
Beim aktivieren von MoveLast oder MovePrevious bekomme ich folgende Fehler-Meldung:
Unbehandelte Ausnahme bei 0x77e4d756 in BiblioSoft.exe: Microsoft C++ exception: _com_error @ 0x0012ec84.
Beim Debuggen habe ich diesen Fehler bemerkt:
inline HRESULT Recordset15::MovePrevious ( ) {
HRESULT _hr = raw_MovePrevious();
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}
Falscher Wert:
_hr = DB_E_CANTFETCHBACKWARDS
So sieht den richtigen Wert aus:
_hr = s_ok
code:
void CKundenListe::OnBnClickedAnfang()
{
pRSKunde->MoveFirst();
Showdata();
}
void CKundenListe::OnBnClickedZurueck()
{
pRSKunde->MovePrevious();
Showdata();
}
void CKundenListe::OnBnClickedVorwaerts()
{
pRSKunde->MoveNext();
Showdata();
}
void CKundenListe::OnBnClickedEnde()
{
pRSKunde->MoveLast();
Showdata();
}
void CKundenListe::Showdata()
{
m_KundeID = pRSKunde->GetFields()->GetItem("KundeID")->GetValue();
m_Name = pRSKunde->GetFields()->GetItem("Name")->GetValue();
m_Vorname = pRSKunde->GetFields()->GetItem("Vorname")->GetValue();
m_Adresse = pRSKunde->GetFields()->GetItem("Adresse")->GetValue();
m_PLZ = pRSKunde->GetFields()->GetItem("PLZ")->GetValue();
m_Ort = pRSKunde->GetFields()->GetItem("Ort")->GetValue();
m_Telefon = pRSKunde->GetFields()->GetItem("Telefon")->GetValue();
UpdateData(false);
}
Danke für eure Hilfe
Ich hab eine Dialogbasierende Anwendung und verwende die ADO-Schnittstelle.
Durch die Methoden MoveFirst, MoveLast, MovePrevious und MoveNext kann ich durch meine Datenbank navigieren und Datensätze anzeigen lassen.
Beim aktivieren von MoveLast oder MovePrevious bekomme ich folgende Fehler-Meldung:
Unbehandelte Ausnahme bei 0x77e4d756 in BiblioSoft.exe: Microsoft C++ exception: _com_error @ 0x0012ec84.
Beim Debuggen habe ich diesen Fehler bemerkt:
inline HRESULT Recordset15::MovePrevious ( ) {
HRESULT _hr = raw_MovePrevious();
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _hr;
}
Falscher Wert:
_hr = DB_E_CANTFETCHBACKWARDS
So sieht den richtigen Wert aus:
_hr = s_ok
code:
void CKundenListe::OnBnClickedAnfang()
{
pRSKunde->MoveFirst();
Showdata();
}
void CKundenListe::OnBnClickedZurueck()
{
pRSKunde->MovePrevious();
Showdata();
}
void CKundenListe::OnBnClickedVorwaerts()
{
pRSKunde->MoveNext();
Showdata();
}
void CKundenListe::OnBnClickedEnde()
{
pRSKunde->MoveLast();
Showdata();
}
void CKundenListe::Showdata()
{
m_KundeID = pRSKunde->GetFields()->GetItem("KundeID")->GetValue();
m_Name = pRSKunde->GetFields()->GetItem("Name")->GetValue();
m_Vorname = pRSKunde->GetFields()->GetItem("Vorname")->GetValue();
m_Adresse = pRSKunde->GetFields()->GetItem("Adresse")->GetValue();
m_PLZ = pRSKunde->GetFields()->GetItem("PLZ")->GetValue();
m_Ort = pRSKunde->GetFields()->GetItem("Ort")->GetValue();
m_Telefon = pRSKunde->GetFields()->GetItem("Telefon")->GetValue();
UpdateData(false);
}
Danke für eure Hilfe
