Eintrage in eine Access-Datenbank



  • Sorry für Spam...
    kann das gerade net umsetzten am Rechner,
    bin net @ home....
    aber könnte es so gehen???

    if (rs.AddNew("name","vorname","tel_priv"),('"+m_name+"','"+m_vorname+"','"+m_tele+"') ) == 0) 
            MessageBox("Fehler in der  SQL - Abfrage");
    else {
    rs.Update();
    MessageBox("Ok wurde gespeichert");
    }
    

    Oder bin ich da am total falschem Hacken...

    Greetz Moron2k



  • bist total falsch.. faq:

    m_pSet->AddNew();

    Mit diesem Befehl wird ein neuer Datensatz am Ende der DB eingefügt. Nach dieser Zeile kommen die Zuweisungen der Werte an die Member-Variablen der der von CRecordset abgeleiteten Klasse. Sobald alle gewünschten Wert übergeben wurden, wird der Datensatz mit m_pSet->Update(); in die DB geschrieben.

    das sieht dann z.B so aus:

    rs.AddNew();
    rs.m_name = "name";
    rs.m_vorname = "vorname";
    rs.Update();
    


  • Hmmm huch achso
    dachte das muss da auch mit rein...
    also muss ich garkein query schreiben...

    rs.Open (CRecordset::readOnly)
    rs.AddNew();
    rs.m_name = m_name;
    rs.m_vorname = m_vorname;
    rs.m_tele = m_tele;
    if (rs.Update() == 0) 
            MessageBox("Fehler in der  SQL - Abfrage"); 
    else { 
    MessageBox("Ok wurde gespeichert"); 
    }
    rs.Close();
    

    Hmmm und wenn ich das richtig verstanden habe, sollte das da oben dann
    wohl nun richtig sein....

    Danke aber nochmal fuer die Antwort

    Greetz GabberMoron



  • bis auf das problem, dass dein Recordset readOnly geöffnet wurde (was sich mit AddNew/Update nicht richtug versteht) sollte es so klappen.



  • Ach du scheisse bin ich ein pansen....
    dann nehm ich halt eben forward only...
    ich teste das zuhause dann ma
    wenn es funzt schreib ich die Lösung nochmal hierrein,
    damit andere net nochmal fragen müssen.

    Danke nochmal fuer deine Schnelle und Gute Hilfe

    Greetz GabberMoron



  • Hier werden Sie geholfen.

    www.sensorme.de/dateien/odbc.zip

    Dies ist eine ODBC-Klasse für Vc++ 7.1 . Hat fast diue gleichen Methoden wie meine Mysql-Wrapper. Für Source brauchst du nur im Forum zu suchen da es fast der gleiche ist wie für ODBC.



  • Hmmm ok
    bin nun zuhaus, hab das auch ma aus probiert

    CRecordset rs( &db );
    
    	if ( rs.Open (CRecordset::forwardOnly,_T ("SELECT * FROM Kontaktverwaltung")) == 0)
    	{
    		MessageBox("Connect nicht erfolgreich!");
    	} else {
    		rs.AddNew(); 
    		rs.name = m_name; 
    		rs.vorname = m_vorname; 
    		rs.tel_priv = m_tele; 
    		if (rs.Update() == 0) 
    			MessageBox("Fehler in der  SQL - Abfrage"); 
    		else { 
    			MessageBox("Ok wurde gespeichert"); 
    		}
    	}	 
    	rs.Close();
    

    Das geht aber auch net da gibt der mir 3 Fehler...

    error C2059: Syntaxfehler : 'constant' (bei rs.name)
    error C2059: Syntaxfehler : 'constant' (bei rs.vorname)
    error C2039: 'tel_priv' : Ist kein Element von 'CRecordset'

    So mit dem constant komm ich absolut net klar, und sonst irgendwie auch net....
    ich raff das alles nicht.
    Hab ich da irgendwo einen denk Fehler oder bin ich einfach zu blöd dafür?

    Greetz GabberMoron



  • Hast du die m_ vor den Recordsetvariablen vergessen ?



  • Wie leg ich den die Recordset Variablen fest?
    Muss ich das ins Public der Recordset Class schreiben?
    CRecordset name;
    CRecordset vorname;
    CRecordset tel_priv;

    Oder wie muss ich das machen?

    Greetz GabberMoron



  • ok hab das nun gemacht.
    Programm Startet auch .....
    dann spackt der aber ab...

    MessageBox("Hier gehts noch");
    rs.AddNew(); 
    rs.p_name = m_name; 
    rs.p_vorname = m_vorname; 
    rs.p_tel_priv = m_tele;
    MessageBox("Hier gehts noch");
    

    Irgendwo da, weil die 2. MessageBox nicht kommt. Die 1. aber,
    so und ich hab nun ma wieder keine Ahnung wo der Fehler liegt....
    Oder kann es sein, das meine Access DB irgendwie im Arsch ist....
    weil ich bekomm immer das selbe.
    irgendsoein Speicher Problem glaube ich...

    Debug Assertion failed!

    Kann mir einer helfen? 😃

    Greetz GabberMoron


Anmelden zum Antworten