Visual C++ Access Datenbankanbindung - Anfänger!



  • Hi Leute,

    ich habe im Augenblick ein kleines Problem - vorweg: MFC sind (noch) nicht meine Freunde.

    Ich stehe in meiner Ausbildung zum Informatiker kurz vor meinem Abschluß.
    Meine Abschlußarbeit besteht nun darin ein älteres Tool zur Netzwerkkomunikation von der Datensicherung in Files aus eine Datenbank umzustellen.
    In den Dateien wurden ursprünglich alle Informationen zur Netzwerkkommunikation gespeichert.
    Das Problem ist das bekannte: jeder User hat seinen eigenen persönlichen Datenbestand auf seinem Rechner, von dem andere User nichts wissen.

    Daher die Datenbank.
    Da hier im Hause kein SQL-Server zu finden ist und auf jedem Rechner MS Access installiert ist, habe ich mich entschieden die DB in Access zu entwickeln.

    Dieser Schritt ist bereits abgeschlossen - das Design sollte auch passen.

    Das eigentliche Problem ist es nun in die alte Applikation)(VC 6.0) die DB-Unterstützung einzuarbeiten.
    Ich habe schon ein paar Versuche mit MFC und verschiedenen DB-Anbindungen getestet.

    Da zu diesem Thema nicht gerade viel verständliches im Netz für mich zu finden war, versuche ich an dieser Stelle mein Glück.

    Hat jemand vielleicht ein paar gute Links/Tipps zu dem Thema "Access-DB-Anbindung in VC"?

    Mein Hauptproblem besteht darin, einfache SQL-Querries loszulassen und mehr als eine Tabelle einzubinden.

    Bin für jede Hilfe dankbar. 😃

    Beste Grüße

    sledge



  • Spontan fällt mir das hier ein: http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap14.htm

    Schau dir einfach mal CDatabase und CRecordset an.
    Mehrere Tabellen sind übrigens ganz einfach: Wiederhole die Anbindung einer Tabelle für alle gewünschten. 😉



  • @estartu: vielen Dank für den Link und Deine Tipps 😉

    Ich habe inzwischen noch ein paar andere interessante Links gefunden.
    Da in den meisten Quellen davon die Rede ist, dass OLE DB inzwischen ODBC vorzuziehen ist, habe ich in diese Richtung weiter gemacht.

    Im Augenblick habe ich nur ein Verständnissproblem:
    Wenn ich Daten aus der Datenbank abfrage, dann ist in den meisten Beispielen von einer Tabelle die Rede.
    Für die Tabelle wird dann eine Klasse mit Column_map erzeugt und später mit CCommand verwendet.

    Muss ich denn jetzt für jede Tabelle eine Klasse mit map erzeugen?

    Was passiert aber mit Daten die ich über Joins aus mehreren Tabellen erhalte?

    Ganz stupid gesagt: ich hätte gerne die Möglichkeit beliebige SQL-Statements an die DB zu senden, wobei ich ganz gezielt auf die Ergebnisse zugreifen möchte, aber ohne die Struktur der DB im einzelnen definieren zu müssen.
    Dieser Wunsch klingt ein wenig vermessen, aber da meine Datenbankanbindungserfahrungen nur auf Skriptsprachen(Perl, PHP, Python) beruhen, vielleicht auch verständlich 🙄

    Bin für jede Hilfe dankbar



  • SledgeIT schrieb:

    @estartu: vielen Dank für den Link und Deine Tipps 😉

    Muss ich denn jetzt für jede Tabelle eine Klasse mit map erzeugen?

    nein,brauchst nicht.

    einfach Beispiel:

    CDatabase m_pdb=new CDatabase;
    	m_pdb->OpenEx(_T("DSN=DSNNAME"));
    	m_pSet =new CRecordset (m_pdb);
            CString sql="select * from Kunden where TelNummer='"+m_strKTel+"'";
    
    	m_pSet->Open(CRecordset::dynaset,sql);
    	while(!m_pSet->IsEOF())
    	{
    		m_pSet->GetFieldValue("KundeID",strKundID);
            }
            m_pSet->Close();
            m_pdb->Close();
    

Anmelden zum Antworten