Einbindung einer Datenbank in eine Unteransicht
-
Was bitte schön ist casten????

Danke schon mal im Voraus.
-
Casten ist eine Typumwandlung.
In diesem Fall von CDocument in den Typ deiner Dokumentenklasse.Das geht (im einfachsten aber fehleranfälligsten Fall) so:
m_pSet=((CDeinDoc*)GetDocument())->GetpTabelleRaum();Ersetze CDeinDoc nun durch den Namen deiner Dokumentenklasse und der Compiler sollte glücklich sein.

-
Casten bedeutet Typumwandlung. Aber beantworte doch erst mal die Fragen wenn Du willst das wir Dir helfen? Wo ist denn nun die Funktion definiert? Was gibt denn die Funktion als Rückgabewert zurück?
-
AndyDD schrieb:
Wo ist denn nun die Funktion definiert? Was gibt denn die Funktion als Rückgabewert zurück?
Die Funktion ist im CDocument definiert und gibt als Wert m_TabelleRaum zurück, die auch als Variable im Document definiert wurde. Der Hinweis von estartu hat schon das Problem gelöst.
Danke.
Kann mir vielleicht noch jemand sagen, wie ich die Datenbank so filtern kann, dass ich die Datensätze bekomme, die größer als der Wert ist, den der Benutzer eingegeben hat?
Mein Vorschlag:
m_pSet->m_strFilter="Anzahl=hoerer";
da wird als Fehler angezeigt, aber erst nach dem Start der Oberfläche, dass er zuwenig Parameter übergeben wurden.Danke schon mal im Voraus.

-
Wenn Du auf Werte prüfst die größer einer Vorgabe sein sollen, dann darf man ja kein Gleichheitszeichen nehmen. Wenn ich das richtig verstanden habe, so steht ja in m_strFilter die WHERE-Anweisung einer SQL-Anfrage.
m_pSet->m_strFilter="Anzahl>Vorgabe";Die Fehlermeldung könnte davon kommen, dass Du eventuell noch den Tabellennamen angeben musst. Probier mal das:
m_pSet->m_strFilter="[DeinTabellenname].[Anzahl]>Vorgabe"; //oder m_pSet->m_strFilter="[Anzahl]>Vorgabe";
-
Die Vorgabe soll der Benutzer aber in einen Dialog eingeben und dieses Wert habe ich als hoerer definiert und dieser soll mit Zahl aus der Datenbank verglichen werden.
Danke.
-
m_pSet->m_strFilter.Format("Anzahl=%s", hoerer);Falls es als String eingegeben wird, sonst eben mit %d.
-
estartu schrieb:
m_pSet->m_strFilter.Format("Anzahl=%s", hoerer);Es escheinen bei mir trotz dem obigen Befehl alle Einträge der Datenbank.
Woran kann das jetzt liegen???Danke

-
Hast du nach dem Setzen des Filters nochmal neu geladen?
Mach danach malm_pSet->Requery();
-
Nachdem ich das Programm debuggert habe und das entsprechende Unterfenster öffnen will, kommt eine Fehlermeldung:
Debug Assertion Failed!
Was nun???
Danke im Voraus schon mal.
-
Bartnelke schrieb:
Nachdem ich das Programm debuggert habe und das entsprechende Unterfenster öffnen will, kommt eine Fehlermeldung:
Debug Assertion Failed!
Was nun???
Danke im Voraus schon mal.Lesen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-120832.html
-
Hallo,
was bitte ist an dieser Zeile falsch?
ASSERT(IsOpen());
Danke schon mal im Voraus.
-
An der Zeile ist nichts falsch.
Hast du das verlinkte gelesen? Diese Zeile soll dir mitteilen, dass du was vergessen hast.

Es wurde noch kein Open aufgerufen.Schau in den Callstack, welcher Befehl das auslöst und dann zeig mal her.
-
Das ist, was mir angezeigt wird:
Unhandled exception at 0x7c1ea077 (mfc71d.dll) in Raumplaner.exe: User breakpoint.
-
Sorry, war erst das falsche.
Hier jetzt das richtige:
> mfc71d.dll!CRecordset::Requery() Line 2038 + 0x1f C++
-
Hmm, dann ist das Recordset wohl doch noch nicht offen beim Filtern.
Dann ersetz mal das Requery durch Open.
-
Hat vielleicht noch ne Idee, dass der Filter auch funktioniert weil im Moment gibt er mir alle Datensätze der Tabelle aus.
CView::OnInitialUpdate();
m_pSet=((CRaumplanerDoc*)GetDocument())->GetpTabelleRaum();
if (m_pSet->IsOpen()){m_pSet->Close();}
m_pSet->m_strFilter.Format("Anzahl>=%d",hoerer);
m_pSet->Open();Danke.

-
Kann mir jemand helfen, dass der Wert, den ich un einem modalen Dialog eingebe, soll mit den Werten einer Datenbank verglichen werden und dann sollen mir die Datensätze angezeigt werden, welche größer sind.

Vielen Dank schon mal.
-
Hast du schon meinen Artikel dazu gelesen?
Den Link dahin findest du in der Ankündigung hier im MFC Forum.

-
Kannst du mir sagen, wo du die Zeile "CFarbenSet farbSet;" definiert hast.
Danke.
