Fehler, aber warum?
-
Hallo,
ich bekomme wenn ich auf den Button des nachfolgenden Codes klicke immer
folgende Meldung: "Versuch zu aktualisieren oder zu löschen ist fehlgeschlagen".
Kann mir jemand sagen was daran falsch ist?MfG
void CDatenbankDlg::OnBneu()
{
CKundendatenbankSet pSet;pSet.Open(); // DbConnect oeffnen
pSet.AddNew();
if (pSet.GetRecordCount() == 0)
{
m_iIndex = 1;}
else
{
pSet.MoveLast();
m_iIndex = pSet.m_Index + 1;m_strName = "";
m_strVorname = "";
m_strAnschrift = "";
m_strOrt = "";
}pSet.Update();
pSet.Close();
UpdateData(FALSE);
}
-
Gibts überhaupt ne Datenbank dazu?
-
pSet.m_Index dem must du auch einen wert zuweißen denn es noch nicht gibt wenn es der Primärschlüssel ist.
-
Ja es gibt eine Datenbank, es funktioniert auch wenn ich das pSet.Update()
weglasse, aber sobald ich es mit einbinde kommt die Meldung.MfG
-
Vor Update musst du Edit aufrufen...
Devil
-
Es funktioniert, vielen Dank.
MfG
-
MSDN:
AddNew prepares a new, empty record using the recordset's field data members. After you call AddNew, set the values you want in the recordset's field data members.
(You do not have to call the Edit member function for this purpose; use Edit only for existing records.) When you subsequently call Update, changed values in the field data members are saved on the data source.[ Dieser Beitrag wurde am 22.10.2002 um 08:26 Uhr von RenéG editiert. ]
-
Uups, aber was ist dann der Fehler?
-
ka. wahrscheinlich ein Tippfehler in der MSDN
Devil
-
Das ist kein Tippfehler.
Das MoveLast müsste weg, da bei einem AddNew der Pointer auf dem neu erzeugten Record steht.Mit dem MoveLast setzt Du den Pointer vor diesen Record und das AddNew wird 'beendet'. Dann musst Du natürlich den Index als globale Variable führen.
Am einfachsten holt man sich erst den Index aus dem letzten Recordset und macht dann das AddNew.
Die Abfrage ob schon ein Record in der DB ist mache ich immer indem ich kontrolliere ob der Pointer nicht EOF und nicht BOF ist. Trifft nämlich beides zu ist die Tabelle leer.
Gruß
Bernd
-
Vielen Dank für die schnelle Hilfe.
MfG