Datenbank in bestehendes Projekt einfügen



  • Das Problem liegt darin, das ich nicht weiß, was muss ich wohin wie einfügen, das ich überhaupt erstmal nen Connect zu meiner DB bekomme. Muss ich neue Klassen dafür anlegen? Wenn ja, welche?
    Man hat mir gesagt, es würde mit ADO gehen, aber da steh ich vorm selben Problem.
    In die System-Verwaltung bzw. in die Registry komm ich net, da ich keine Admin rechte auf diesem Rechner hab. Also alles, was irgendwie mit änderungen in diesem Bereich zu tun hat, fällt aus.



  • Eine blöde Frage,

    warum entwickelst du auf einem Rechner wo du keine Admin Rechte hast ????



  • weil ich hier ein 2 Monatiges Praktikum mache, in der Hoffnung danach übernommen zu werden. Und wie das so ist bekommen Praktikanten keine Admin-Rechte und dazu noch die Idioten aufgaben. Die I-Aufgabe hier lautet ne Datenbank in die App einbauen. Sowas habe ich während meiner AB aber nur in VB gelernt und selbst da hatte ich damit schon schwierigkeiten. Hier wird aber nicht in VB sondern in C++ entwickelt und von meinen Kollegen hier hat das auch noch keiner gemacht. Deshalb soll ich es ja machen. Ich glaube allerdings wenn ich das vernünftig löse, hab ich meine Stelle. Die Frage ist nur, wie löse ich es vernünftig?

    Ich habe jetzt eine Klasse DBConnect eingebaut, die von CRecordset abgeleitet ist, bekomme allerdings beim Compelieren diese Fehlermeldung:

    e:\teddy\hl-rus\dbconnect.cpp(67) : fatal error C1010: unexpected end of file while looking for precompiled header directive

    Es ist eine vom Assistenten entwickelte Klasse, daher weiß ich net, wo da der Fehler steckt. Ich häng sie hier mal dran:

    /////////////////////////////////////////////////////////////////////////////
    // DBConnect
    
    IMPLEMENT_DYNAMIC(DBConnect, CDaoRecordset)
    
    DBConnect::DBConnect(CDaoDatabase* pdb)
        : CDaoRecordset(pdb)
    {
        //{{AFX_FIELD_INIT(DBConnect)
        m_nr = 0;
        m_gExp = (DATE)0;
        m_gDc = 0;
        m_nr2 = 0;
        m_SlotNr = 0;
        m_Name = _T("");
        m_Exp = (DATE)0;
        m_UserCount = 0;
        m_LicInfo = 0;
        m_Singularity = 0;
        m_nFields = 10;
        //}}AFX_FIELD_INIT
        m_nDefaultType = dbOpenDynaset;
    }
    
    CString DBConnect::GetDefaultDBName()
    {
        return _T("E:\\Teddy\\HL-Rus\\hldb.mdb");
    }
    
    CString DBConnect::GetDefaultSQL()
    {
        return _T("[LicInfo],[Slots]");
    }
    
    void DBConnect::DoFieldExchange(CDaoFieldExchange* pFX)
    {
        //{{AFX_FIELD_MAP(DBConnect)
        pFX->SetFieldType(CDaoFieldExchange::outputColumn);
        DFX_Long(pFX, _T("[LicInfo].[nr]"), m_nr);
        DFX_DateTime(pFX, _T("[gExp]"), m_gExp);
        DFX_Long(pFX, _T("[gDc]"), m_gDc);
        DFX_Long(pFX, _T("[Slots].[nr]"), m_nr2);
        DFX_Long(pFX, _T("[SlotNr]"), m_SlotNr);
        DFX_Text(pFX, _T("[Name]"), m_Name);
        DFX_DateTime(pFX, _T("[Exp]"), m_Exp);
        DFX_Long(pFX, _T("[UserCount]"), m_UserCount);
        DFX_Long(pFX, _T("[LicInfo]"), m_LicInfo);
        DFX_Long(pFX, _T("[Singularity]"), m_Singularity);
        //}}AFX_FIELD_MAP
    }
    
    /////////////////////////////////////////////////////////////////////////////
    // DBConnect diagnostics
    
    #ifdef _DEBUG
    void DBConnect::AssertValid() const
    {
        CDaoRecordset::AssertValid();
    }
    
    void DBConnect::Dump(CDumpContext& dc) const
    {
        CDaoRecordset::Dump(dc);
    }
    #endif //_DEBUG
    


  • Hallo !

    In der Hilfe steht bei CDaoRecordset:

    #include <afxdao.h>

    Isses vielleicht das ?

    Tschüss



  • nein, daran liegts auch net



  • #include "stdafx.h"



  • jetzt hab ich statt der einen gleich 24 Fehlermeldungen:

    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2653: 'DBConnect' : is not a class or namespace name
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2653: 'CDaoRecordset' : is not a class or namespace name
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2065: 'classCDaoRecordset' : undeclared identifier
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2653: 'DBConnect' : is not a class or namespace name
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2270: 'GetRuntimeClass' : modifiers not allowed on nonmember functions
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(10) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(10) : error C2199: syntax error : found 'DBConnect (' at global scope (was a declaration intended?)
    E:\Teddy\HL-Rus\DBConnect.cpp(11) : error C2065: 'pdb' : undeclared identifier
    E:\Teddy\HL-Rus\DBConnect.cpp(12) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
    E:\Teddy\HL-Rus\DBConnect.cpp(30) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(35) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(40) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(40) : error C2065: 'CDaoFieldExchange' : undeclared identifier
    E:\Teddy\HL-Rus\DBConnect.cpp(40) : error C2065: 'pFX' : undeclared identifier
    E:\Teddy\HL-Rus\DBConnect.cpp(41) : error C2448: '<Unknown>' : function-style initializer appears to be a function definition
    E:\Teddy\HL-Rus\DBConnect.cpp(61) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(62) : error C2270: 'AssertValid' : modifiers not allowed on nonmember functions
    E:\Teddy\HL-Rus\DBConnect.cpp(63) : error C2653: 'CDaoRecordset' : is not a class or namespace name
    E:\Teddy\HL-Rus\DBConnect.cpp(66) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(67) : error C2270: 'Dump' : modifiers not allowed on nonmember functions
    E:\Teddy\HL-Rus\DBConnect.cpp(68) : error C2653: 'CDaoRecordset' : is not a class or namespace name
    E:\Teddy\HL-Rus\DBConnect.cpp(72) : error C2027: use of undefined type 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(8) : see declaration of 'DBConnect'
    E:\Teddy\HL-Rus\DBConnect.cpp(76) : error C2653: 'CDaoRecordset' : is not a class or namespace name
    Generating Code...
    Error executing cl.exe.

    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh



  • Und #include <afxdao.h> ist wirklich drin ?



  • Und was ist damit Datenbankzugriff



  • Was für eine DB isses denn ?????
    🕶



  • #include <afxdao> ist drin

    es ist eine Access97 Datenbank



  • Hier ein Bsp. für ODBC.

    1. ODBC einrichten. (Wenn noch nicht geschehen ist. evtl. Admin fragen )

    2. #include <afxdb.h>

    3. In deimen Projekt neue Klasse (Bsp. MySet) einfügen. als Basisklasse CRekordSet auswählen. Danach die eingerichtete Datenbank und die gewünschte Tabelle (die du abfragen möchtest) auswählen

    MySet db;   
    
    CString sql;
    
    sql = "select * from bla..";
    
        try 
        {
        db.Open(CRecordset::snapshot, sql);
        if(db.IsEOF())
               {
        AfxMessageBox("Konnte kein gültigen Datensatz finden", MB_ICONEXCLAMATION);
        return;
            }
            else
                {
                                //Tabelle auslesen
                    variable = db.m_FELDNAME;
                }
            db.Close();
    
        }
        catch(CDBException* e)
        {
            AfxMessageBox( e->m_strError, MB_ICONEXCLAMATION );
            return;
        }
    

    Müsste funzen !!! 😃 😃

    [ Dieser Beitrag wurde am 24.04.2003 um 14:44 Uhr von goochie editiert. ]


Anmelden zum Antworten