Probleme mit SQL_Datenbankanbindung
-
Zur Zeit teste ich das ganze eh nur an nem Beispiel projekt
Die Datenbank dazu könnte ich auch rausgeben bloss erst heute abend, bin nun unterwegs.
So sieht mein Callstack aus.
-
Ich habe eh erst Montag wieder ein VC.
Zeig mal CTest3View::OnInitialUpdate und markiere Zeile 74. (Klick einfach auf die Zeile im Callstack doppelt und mach nen Kommentar an die Zeile, wo der grüne Pfeil ist.)
-
void CTest3View::OnInitialUpdate() { m_pSet = &GetDocument()->m_test3Set; CRecordView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); //markierte Zeile ResizeParentToFit(); m_pSet2 = &GetDocument()->m_KinderSet; CRecordView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); }
-
Also, die letzten drei Zeilen der Funktion kannst du weglassen, die stehen ja oben schon.
Aber den Fehler sehe ich da nicht.
Der ist wohl besser versteckt.
Welches DBMS verwedest du? Access? MS-SQL? Dann schick mir mal die Datenbank und das Projekt, wenn du magst. mail@estartu.de
Ich guck dann morgen mal drauf.
-
Habe eben mal m_pSet2 unter m_pSet geschrieben und das doppelte rausgenommen und nun spuckt er schon ganz andere sachen aus.
CRecordset::IsDeleted() line 52 + 38 bytes
Das steht als erstes im Callstack.
{ ASSERT(IsOpen()); return m_bDeleted; }
Diese Zeile wird markiert.
In dem Fenster vom Debug Assertion Failed steht Datei afxdb.inl in Line:52.
Das wäre diese Zeile.
Ich schick dir aber mal im laufe des tages den kram, vllt findest du das Problem ja :> Aber schonmal danke im voraus
-
Hast du im Artikel gesehen, was ein ASSERT ist?
Diese ZeileASSERT(IsOpen());
Sagt dir eigentlich nur "Du hast vergessen, Open aufzurufen".
-
Joah hatte ich gelesen, bloss wohl wieder verdrängt
Hmm hab aber noch ned wirklich gefunden wo ich nun nochmal extra CKinderSet hätte öffnen müssen
-
So aus dem Stehgreif weiß ich das auch nicht, weil ich zwar mit Recordsets arbeite, aber den Recordview zu umständlich finde. Ich mach immer da Open, wo ich es grade brauche.
Drück doch mal Strg+Shift+F (Find in Files) und lass ihn nach
Set->Open(
suchen, dann siehst du, wo überall ein Recordset geöffnet wird.
(Ich habe das deswegen so "gekürzt", damit auch möglichst alle Stellen gefunden werden. m_pSet->Open(); geht natürlich auch.)
-
Ohh das Forum geht ja wieder :>
Werde das gleich mal durchgucken und würde sonst auch eben dir ne mail mit dem kram schicken.
-
Jetzt habe ich auch nen PC, wo ich das ausprobieren kann.
Für Kurzfragen kannst du ja auch eben in den Chat (#cpp) kommen.
-
Irc? und wenn ja, welchem Server?
-
Hab oben nen Link nachgepflegt.
irc.de.euirc.net
-
sorry ich war weit von PC.
also ich mache es anders.
view klass ist zwar verbunden mit m_pSet ...welche der assistenten erzeugt hat.
aber für 2te oder 3te klasse brauch ich kein m_pSet mehr.
Z.B.für View klasse was für uns bekannt ist
# include"meinview.h" m_pSet->MoveFirst();
für 2te klasse
#include "2teklass.h" 2teklass::MoveFirst(); 2teklass::AddNew(); 2teklass::Update();
oder eigene funktion in der 2teklasse heisst docheck();
{ 2teklass::Open(); docheck(); 2teklass::Close(); }
-
Naja das mitm m_pSet nachbauen funktioniert ja nun. Hab aber noch 2 Probleme. 1.) Muss ich die KundenNr die er automatisch in der Tabelle hochzählt beim einfügen vom datensatz auch in ne andere Tabelle mit übergebn, bloss er zählt ja erst hoch wenn der Satz in der DB gespeichert ist
2.) Wie speicher ich nen Datum?
-
1.) Lade Tabelle1 neu, dann hast du die neue ID und speicher dann erst Tabelle2.
2.) Als COleDateTime - wieso?
-
1.) Hmm denn muss ich das Kind erst danach speichern und nicht mit den Kundendaten zusammen.
2.) Hatte ich mal kurz getestet da hat er mir aber schon irgendwas gleich ausgeben und ne Zeit brauch ich ja nicht. Muss ich denn noch mal testenAch ja mit der Kombobox müsstest du mir vllt nachher noch mal helfen wenn ich zuhause bin, wäre nett
-
2.) Je nach DBMS kannst du gar nicht "nur ein Datum" speichern.
3.) Kommt drauf an, wann das ist - ich idle rum, einfach wecken.
-
2.) Das ja irgendwie ziemlich scheisse
Hoffe bei Sql geht das einfach so
3.) So gegen 12:30 denke ich
-
2.) Das verträgt sich ziemlich gut, keine Sorge.
Ich habs schon mit MySQL, Pervasive und MS-SQL durch. Das schlimmste ist, wenn du dsa DBMS änderst.
3.) Okay, bis 13:00 hab ich Pause, danach wirds erst nach 15:00 was.
-
- Denn bin ich ja beruhigt
- Bin nun erst zuhause
muss mich auch erstmal wieder aufwärmen :p