Probleme mit SQL_Datenbankanbindung



  • Auch ohne die Fehler gesehen zu haben...

    #include <afxdb.h>
    

    🙄

    Wenn ich falsch liege, zeig doch mal die ersten Fehler - die anderen sind oft Folgefehler.



  • So hab einfach beim Assistenten Nur Header Dateien aktiviert. Und nun geht es mit den Klassen. Das mit den Editfeldern hab ich leider noch ned raus.



  • Also das mit der ComboBox ist nicht so was ich machen wollte.
    Ich wollte halt für jede Spalte meiner Kundentabelle ein EditFeld anlegen. Also Vorname,Nachname usw. Und denn halt im Grunde das jeweilige EditFeld mit der Variable aus meiner Kundendatenbank verknüpfen. Um denn die Daten in die Editfelder einzutragen und in der Datenbank zu speichern.



  • Soweit ich weiß geht es nicht ohne Zwischenschritt über die Variablen des Dialoges.
    Oder was meinst du? 😕



  • Ja ich hab ja halt in meinen Klassen die Variablen wie m_Vorname aus meiner Tabelle. Also müsste ich zuerst die Daten in die Variablen des Dialogs eintragen und die denn in die Variablen von der Tabelle wie m_Vorname übergeben?



  • Wieviele Klassen hast du jetzt? 😕

    Ich bin ausgegangen von:
    Ein Recordset
    Ein Dialog

    Da wäre der Weg:
    Recordset.Variable -> Dialog.VariableFürEinControl -> UpdateData(FALSE)
    oder eben
    UpdateData(TRUE) -> Dialog.VariableFürEinControl -> Recordset.Variable



  • hallo
    mit mehre tabbellen ist einfach und du sollst keine panik haben.

    du kannst ein neuen Projekt legen und normal mit einem DB verbinden und nur mit einer Tabelle. und fertig.
    willst du 2te tabelle dann auf dem klassen ansicht -> rechtmaustatste und klassen einfügen MFC ODBC Consumer dann wählst du die 2te tablle.
    der assistenten macht alles für dich .
    vergiss hen Header einzufügen in deinem view kalsse

    #include"neueklasse.h"
    


  • das kannst du denn machen für beliebige tabellen.

    aber wichtig
    DU DARFST NICHT
    wenn du eine klasse a hat include b
    darfst du nicht klasse b nachher include klasse a...sonst salat von Fehler



  • dokdok schrieb:

    aber wichtig
    DU DARFST NICHT
    wenn du eine klasse a hat include b
    darfst du nicht klasse b nachher include klasse a...sonst salat von Fehler

    Lösung: http://www.c-plusplus.net/forum/viewtopic-var-t-is-112693.html 🙂



  • Frage?
    kann man funktion von klasse a in klasse b rufen ? und auch funktion von klasse b in klasse a rufen?
    ist es das eine mit include"xxxx.h" und das andere mit class Cklass;
    wird mir intressiren. ich probiere mal



  • dokdok schrieb:

    Frage?
    kann man funktion von klasse a in klasse b rufen ? und auch funktion von klasse b in klasse a rufen?
    ist es das eine mit include"xxxx.h" und das andere mit class Cklass;
    wird mir intressiren. ich probiere mal

    Das sollte funktionieren. Ist ja hinter dem Link erklärt. 🙂



  • estartu_de schrieb:

    Wieviele Klassen hast du jetzt? 😕

    Ich bin ausgegangen von:
    Ein Recordset
    Ein Dialog

    Da wäre der Weg:
    Recordset.Variable -> Dialog.VariableFürEinControl -> UpdateData(FALSE)
    oder eben
    UpdateData(TRUE)-> Dialog.VariableFürEinControl -> Recordset.Variable

    Ich habe 4 Tabellen somit 4 Klassen abgeleitet von CRecordSet und einmal mein Dialogfenster(Basisklasse CFormView)



  • dokdok schrieb:

    hallo
    mit mehre tabbellen ist einfach und du sollst keine panik haben.

    du kannst ein neuen Projekt legen und normal mit einem DB verbinden und nur mit einer Tabelle. und fertig.
    willst du 2te tabelle dann auf dem klassen ansicht -> rechtmaustatste und klassen einfügen MFC ODBC Consumer dann wählst du die 2te tablle.
    der assistenten macht alles für dich .
    vergiss hen Header einzufügen in deinem view kalsse

    #include"neueklasse.h"
    

    Ja denn kann ich zwar über m_pSet die eine Tabelle auswählen muss für die anderen Tabellen es dann aber auch anders machen.



  • reda schrieb:

    Ja denn kann ich zwar über m_pSet die eine Tabelle auswählen muss für die anderen Tabellen es dann aber auch anders machen.

    Dann guck doch mal, wie das mit dem m_pSet funktioniert und bau dir m_pSet2 bis n. 🙄

    Du musst da nix anders oder besonderes machen. Nur gucken, wie der Assistent das macht und abschreiben.



  • [cpp]public:
    //{{AFX_DATA(CTest3View)
    enum { IDD = IDD_TEST3_FORM };
    CTest3Set* m_pSet;
    //}}AFX_DATA

    Das steht in der *View.h
    Und denn ist sie halt noch in den ganzen DoDataExchange,usw. vorhanden.
    Ich habe eben einfach alles abgeschrieben und da halt mit ein getragen wo m_pSet ist. Denn sagt er mir oben in der Header Datei fehlendes ; * O_o
    Und denn fehlende Speicherklasse für meine 2 Set Klasse und fehlende Speicherklasse für m_pSet2



  • reda schrieb:

    Und denn fehlende Speicherklasse für meine 2 Set Klasse und fehlende Speicherklasse für m_pSet2

    include vergessen!



  • Hmm habs grad gefunden. Sie fehlten in der test3.cpp.....

    Nun fehlten sie noch in der.doc datei 😕

    Also das programm kann ich nun zwar starten bloss es kommt dieser nette fehlerbildschrim
    http://img362.imageshack.us/img362/8308/fehler0ek.th.jpg



  • reda schrieb:

    Also das programm kann ich nun zwar starten bloss es kommt dieser nette fehlerbildschrim
    http://img362.imageshack.us/img362/8308/fehler0ek.th.jpg

    Das ist kein Fehler. 🙄
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-120832.html



  • Er zeigt mir im Debug denn das an

    if (pOb == NULL)
    	{
    		TRACE0("ASSERT_VALID fails with NULL pointer.\n");
    		if (AfxAssertFailedLine(lpszFileName, nLine))
    			AfxDebugBreak();
    		return;     // quick escape
    	}
    

    Auf AfxDebugBreak ist der Pfeil gesetzt. Sagt mir bloss nix 😕



  • Das heißt einfach nur "in der Debugversion hier anhalten". So in etwa jedenfalls. 😉

    pOb ist NULL, dürfte es aber nicht sein.
    Verfolge mal im Callstack, wo du es hättest initialisieren müssen.


Anmelden zum Antworten