Probleme beim Hinzufügen eines neuen Datensatzes



  • Hi,

    ich habe folgende Fehlermeldung beim Kompilieren meines Programmes, in dem es um das Hinzufügen eines neuen Datensatzes geht:

    warning C4244: 'argument' : Konvertierung von 'long' in 'char', moeglicher Datenverlust (bezieht sich auf: CString strCurrentCourse = m_pSet->m_id;)

    error C2679: Binaerer Operator '=' : Kein Operator definiert, der einen rechtsseitigen Operator vom Typ 'class CString' akzeptiert (oder keine geeignete Konvertierung moeglich) (bezieht sich auf: m_pSet->m_id = strCurrentCourse;)

    Der dazugehörige Abschnitt des Quellcodes lautet:

    void CTest_1Form::OnRecordAdd() 
    {
    	// TODO: Code für Befehlsbehandlungsroutine hier einfügen
    	// Falls Sie sich bereits im Hinzufügen-Modus befinden,
    	// vervollständigen Sie den vorhergehenden neuen Datensatz
    
    	if (m_bAddMode)
    	OnMove(ID_RECORD_FIRST);
    
    	CString strCurrentCourse = m_pSet->m_id;
    	m_pSet->AddNew();
    	m_pSet->SetFieldNull(&(m_pSet->m_id), FALSE);
    	m_pSet->m_id = strCurrentCourse;
    	m_bAddMode = TRUE;
    	m_ctlSection.SetReadOnly(FALSE);
    	UpdateData(FALSE);
    }
    

    Kann mir jemand sagen, was ich da verkehrt mache? 🙄



  • Du musst "CString <-> int"-Konvertierungen vornehmen: http://www.c-plusplus.net/forum/viewtopic.php?t=39102



  • So wie ich das sehe, ist die Variable m_pSet->m_id vom Typ long.
    Die Variable strCurrentCourse sollte dann auch vom Typ long sein. Dann sollte es eigentlich klappen.


Anmelden zum Antworten