Einbindung einer Datenbank in eine Unteransicht
-
Bartnelke schrieb:
Für den Breakpoint muss ich keine Bedingung einfügen, oder?
Nein, einfach nur gucken was in den Variablen steht.
Damit beantwortet sich dann auch deine erste Frage, denke ich.Steht nicht das erwartete in m_Vorlesender, dann weißt du, wieso es nicht klappt.

-
Also bei Data steht gar nichts drin.
Und wie kann man das ändern???Danke.
-
Data? Meinst du, der String ist leer?

-
Zumindest wird nichts im Bereich Data angezeigt,
was ich schon etwas komisch finde.
Wenn ich statt der Zeile:
if (m_TabelleDozent.m_Name == m_Vorlesender)
diese dastehen habe:
if (m_TabelleDozent.m_Name = m_Vorlesender)
löscht er nach der Reihenfolge in der Datenbank.
-
Also, wenn dich das wirklich wundert, dann gebe ich hiermit auf.

-
Wenn ein = steht, dann wird der Wert der entsprechenden Variable zugewiesen.
Beim == werden die Werte verglichen.Ich vertausche das bloß öfters, beziehungsweise vergesse das.
Sorry...Es wird mir aber auch keine Daten im Bereich Data angezeigt, wenn ich einen ganz speziellen Datensatz herausnehme. Dann klappt das Löschen schon,muss aber zwischen durch noch eine andere Ansicht aufmachen, ehe die Listbox aktualisiert wird.
-
Bartnelke schrieb:
Wenn ein = steht, dann wird der Wert der entsprechenden Variable zugewiesen.
Und es ist true, falls es in einer Bedingung steht.
Beim == werden die Werte verglichen.
Ich vertausche das bloß öfters, beziehungsweise vergesse das.
Sorry...Ist ne böse Fehlerquelle, sieht zu, dass es seltener wird.

Es wird mir aber auch keine Daten im Bereich Data angezeigt, wenn ich einen ganz speziellen Datensatz herausnehme. Dann klappt das Löschen schon,muss aber zwischen durch noch eine andere Ansicht aufmachen, ehe die Listbox aktualisiert wird.
Naja, die Listbox wird in dem Code, den ich kenne ja auch nicht aktualisiert. Das musst du noch machen.
Leider weiß ich immer noch nicht, was du mit Data meinst.

-
In dem Bereich, wo ich die Breakpoints überwache gab es von Anfang an, die Spalten Name, Condition,Hit Count. Da ich in diesenSpalten nur ablesen kann, wie oft der Breakpoint durchlaufen wurde, habe ich die Spalte Data noch zum anzeigen ausgewählt, weil ich sehen wollte, wie die Variablen an der Stelle sind.
Oder geht das anders???
Danke.

-
-
Danke.
Es erscheint nun für die Variable m_Vorlesender:
Name: -this
Value: 0x003280e0 {Dozent2 hWnd=0x00040648 {unused=??? }}
Type: Dozent2 * const
Wo bei mir dass nichts sagt.
Kann mir das bitte jemand erklären???Danke.

-
Was für ein Typ ist m_Vorlesender?
Ich dachte, das sei ein CString, aber dagegen spricht das, was du abgeschrieben hast...
-
Also in Datei.h:
CString m_Vorlesender;in der Datei.cpp:
, m_Vorlesender(_T("")) DDX_LBString(pDX, IDC_LIST1, m_Vorlesender);Was für ein Typ ist m_Vorlesender?
Ich dachte, das sei ein CString, aber dagegen spricht das, was du abgeschrieben hast...so hatte ich das auch gedacht.

-
Mach doch bitte mal über die if ein
TRACE(m_Vorlesender);und guck ob der was ausgibt.
Interessant wäre auch noch ein Screenshot (reicht der Ausschnitt mit der lokalen Überwachung) in dem Moment.
Evtl. verstehe ich da was falsch oder du hast doch an der falschen Stelle geguckt.
-
Wo gibt er denn den Wert von Trace aus???
Danke.
-
In der Debugausgabe, steht aber auch in dem Artikel, den ich dir verlinkt habe.
Wenn du es nicht findest, geht auch einAfxMessageBox(m_Vorlesender);
-
Also die Ausgabe des Wertes der Variable m_Vorlesender ist leer.
Den Screenshot habe ich dir per Mail geschickt.Danke.
-
Ich habe schon zurückgemailt.

In der Kurzfassung (für Mitleser): Der String ist leer, du hast vermutlich UpdateData(TRUE) vergessen.
-
Danke.

Muss ich damit die Listbox upgedatet wird, was in die Einlesefunktion schreiben oder nachdem die Löschfunktion getätigt wurde???
-
Ich würde am Ende der Löschfunktion (also die, deren Code hier diskutiert wird) nochmal die Einlesefunktion aufrufen.
Und am Anfang der Einlesefunktion musst du die Liste provisorisch leeren, sonst hast du alles doppelt.
-
Also die Funktion, die die Listbox füllt, ist folgende:
void Dozent2::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)ich muss nun OnUpdate(???) hinschreiben, in die andere Funktion .
Was muss ich aber für die Fragezeichen hinschreiben. Denn wenn ich es Leer gelassen habe und wenn ich TRUE hingeschrieben, kammen immer Fehler.Oder bin ich wieder ganz falsch???

Danke.