Großes Problem mit CRecordSet! Hilfe Bitte! THX
-
tagchen!
habe ein ziemlich großes Problem:
Habe ne SDI Anwendung mit CRecordSet.
Kann Daten lesen und schreiben sowie ändern, alles kein Prob.
Habe als extra noch ne "Suchfunktion eingebunden", mit der man sich, je nach Angaben, einen Datensatz ausgeben lassen kann.
Bsp: Suche in dem Datensatz / Datenbank Access nach Nachname --> Mustermann
Dies soll dann in einem Edit angezeigt werden mit verschiedenen Detailinfos.
Habe dies wie folgt realisiert:CString s_id, s_input, s_ausw, s_ho, s_na; GetDlgItemText(IDC_EEDITSUCHEN, s_input); GetDlgItemText(IDC_CLISTESUCHEN, s_ausw); if (s_input == "") { AfxMessageBox("Für eine Suchfunktion müssen Sie auch was eingeben!!"); } else { CWebschefSet rs; rs.Open(CRecordset::forwardOnly,"SELECT * From Adressbuch WHERE "+s_ausw+"='"+s_input+"'",CRecordset::readOnly); while(!rs.IsEOF()) { // Daten holen und abspeichern rs.GetFieldValue("IPAdresse",s_id); rs.GetFieldValue("Hostname",s_ho); rs.GetFieldValue("Nachname",s_na); // Edits belegen SetDlgItemText(IDC_EANACHNAME, s_na); SetDlgItemText(IDC_EAIPADRESSE, s_id); SetDlgItemText(IDC_EAHOSTNAME, s_ho); rs.MoveNext(); } rs.Close(); }
Sobald ich diese Funktion ausführe / Button klicke werden mir auch die entsprechenden Daten angezeigt.
Das Problem besteht darin, dass die Daten die angezeigt werden komischerweise in die DB eingetragen werden. Aber nicht irgendwohin sondern es wird ein Update gemacht. Das heisst, bei anderen Datensätzen werden die daten, die gesucht wurde bzw angezeigt worden "ausgetauscht".
Bsp: Ich suche nach Mustermann --> Daten werden angezeigt mit Host und IP
In der DB habe ich noch Daten von Musterfrau
Die Daten von Musterfrau (IP, Host, Name) werden geändert und erhalten die Daten von Mustermann!kann mir das einer erklären?!? bzw. habt ihr in meinem kurzen Roman durchgesehen was ich überhaupt will bzw. was mein Problem ist?!
Ich hoffe ihr könnt mir helfen und beDANKE mich schonmal!
THX! cu Bart
-
an dem code oben kanns nicht liegen, würde schon allein an dem readonly scheitern.
-
tagchen!
hast du sonst noch irgendeine Idee woran es liegen könnte??
Also bei den anderen Aufrufen von CWebschefSet ...., also wenn ich es öffne um zu schreiben oder ein Edit() mache, habe ich es immer geschlossen!
Bin halt nur ein Anfänger, aber hatte gedacht das es daran liegen könnte?!wie bekommt man das raus, woran das liegt?? sobald ich mein Programm ohne dieser Funktion starte, funktioniert alles wunderbar!
bin für jeden Hinweis dankbar!
THX! cu Bart
-
Also wie gesagt, der block oben veränder nix in der db.
Was ich mal machen würde:
Update() in CWebschefSet überladen und nen breakpoint rein setzten, dann bekommst du mit wer wo Update aufgerufen hat und kannst dann checken was da vorher passiert ist und was in den ODBC/DAO driver raus geht.