Datenbank - schreiben



  • Hallo

    Ich versuche in eine Access Datenbank eine neue Zeile anzufügen und zu füllen. Leider klappt es nicht so, wie in der Hilfe beschrieben. Die Compilierung funktioniert fehlerfrei, aber später kommt eine Fehlermeldung mit " Runtime error abnormal programm termination".
    Wo liegt der Fehler?

    #include <afxdb.h>
    
    class CNumber_Tbl: public CRecordset
    {
    
    public:
    
        CString m_L;
        CString m_OP;
        CString m_RO;
    
        CNumber_Tbl(CDatabase *pdb): CRecordset(pdb)
        {
            m_LO = "0";
            m_OP = "0";
            m_ROU = "0";
            m_nFields = 3;
        }
    
        virtual void DoFieldExchange(CFieldExchange *pFX)
        {
            pFX->SetFieldType(CFieldExchange::outputColumn);
            RFX_Text(pFX, _T("[LO]"), m_LO);
            RFX_Text(pFX, _T("[OP]"), m_OP);
            RFX_Text(pFX, _T("[RO]"), m_RO);
        }
    };
    
                    CString sODBCName2 = "Test";
            CDatabase dbnumber2;
            CNumber_Tbl number2(&dbnumber2);
    
            dbnumber.Open(sODBCName2);
            if(dbnumber.IsOpen())
            {
                if(!number2.Open())
                return FALSE;
                if( !number2.CanAppend())
                return FALSE;                      
                number2.AddNew();
                number2.m_LO = "Ha1";
                number2.m_OP = "Ha2";
                number2.m_RO = "Ha3";
                if( !number2.Update())
                {
                    AfxMessageBox("Record not added; no field values were set." );
                    return FALSE;
                }
            }
    


  • versuche es mal so

    CNumber_Tbl *m_pSet; 
    m_pSet = new CNumber_Tbl(NULL);
    m_pSet->Open();//öffnet
    m_pSet->MoveLast();//geht zum letzten DS
    m_pSet->AddNew();//öffnet neuen DS
    UpdateData(TRUE);
    
    m_pSet->m_L = m_L;
    m_pSet->m_OP = m_OP;
    m_pSet->m_RO = m_RO;
    
    m_pSet->Update();//aktualiesiert
    m_pSet->Requery();//speichert
    m_pSet->Close()  ;//schließt
    

    vossy


Anmelden zum Antworten