MySql --> mit c++ daraus lesen geht, aber wie schreib ich was in die Datenbank
-
Wie war eigentlich die Frage nochmal?
Du wolltest per ODBC auf Datenbanken zugreifen oder ?
-

Ich möchte per ODBC von VC++6 auf meine Datenbank zugreifen. Welches Datenbanksystem ich verwende soll egal sein (damit ich nicht wieder von vorne anfange, wenn sich etwas ändert). Daher möchte ich, weil ich glaube, dass es dort am besten "verallgemeinert" ist, die MFC Klasse CRecordset verwenden.
Und diese möchte ich so verwenden, wie das von Microsoft gedacht ist. (Also hast du im Prinzip recht, wenn du mich zum Beispiel suchen auf die MSDN verweist - blos ich hab nix gefunden.)
Unter http://www.henkessoft.de/mfc_einsteigerbuch_kapitel12.htm findet man leider nur, wie eine Abfrage (Select) gemacht wird. Aber in dem Erklärungsstil suche ich halt noch, wie man die Daten verändert. Die tieferen Zusammenhäng wären auch interessant, damit ich mich nicht auf diese schrecklichen Assistenten verlassen muss.
Das kann auch gerne auf Englisch sein, das stört mich nicht - Deutsch kommt nur der Faulheit entgegen
.
Solltest du einen Buchtipp haben, immer her damit. Geld spielt im Moment ein untergeordnete Rolle (war ja gerade Weihnachten).Habe ich jetzt meine Frage ausreichend klar formuliert? Ich knobel schon so lange mit dem Problem, dass ich manche Details schon als selbstverständlich betrachte.
Danke

-
meinst du etwa addnew() ?
BOOL CDbView::OnMove(UINT nIDMoveCommand) { // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen if (m_AddMode){ if (!UpdateData()) return false; m_pSet->Update(); m_pSet->Requery(); //Datenbank wegen veränderung neu lesen UpdateData(false); m_AddMode=false; //Add ausschalten return true; } else //kein Add return CRecordView::OnMove(nIDMoveCommand); } void CDbView::OnRecordAdd() { // TODO: Code für Befehlsbehandlungsroutine hier einfügen if (m_AddMode) OnMove (ID_RECORD_FIRST); OnGetRecordset()->AddNew(); m_AddMode=true; UpdateData(false); //Laden der aktuellen daten aus der Recordsetclasse // in das view Fenster } void CDbView::OnRecordDelete() { // TODO: Code für Befehlsbehandlungsroutine hier einfügen m_pSet->Delete(); //aktueller Datensatz geloescht m_pSet->MoveNext(); //naechster wird verschoben if (m_pSet->IsEOF() ) //ende durchs verschieben erreicht?? m_pSet->MoveLast(); //dann der letzte aktuell if (m_pSet->IsBOF() ) //Ist die tabelle leer?? m_pSet->SetFieldNull(NULL); UpdateData(false); }uraltcode aus uraltprojekt ohne anspruch auf richtigkeit
-
ps: das geht natürlich mit mysql genauso wie mit odbc ... etc...
über den odbc treiber (kann man ja mysql genauso anbinden).
ist aber irgendwie nicht schön.. mfc halt.
-
Jaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa! *hüpfdurchsbüro*
Oh, das ist es! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke! Danke!
Das ist so ein gesuchtes Beispiel. Ich hoffe auch mal, dass keine bösen Fehler drinstecken, aber ein Ansatz zum Ausbauen ist es auf jeden Fall.
Du kommst einen rauf.

Ja, genau das war gesucht. So dumm es scheint, aber ich hab es nicht finden können. Ich brauchte wirklich nur: "Welche Befehle kombiniere ich mit welchen anderen am besten?" Und das hab ich jetzt. *freu*
Vielen lieben Dank nochmal!

PS: Ich weiss dass es nicht schön ist. Direktes SQL finde ich "einfacher" und deutlich durchschaubarer, aber nach dem unerwarteten Wechsel des DBMS habe ich mir überlegt, dass es das beste ist, unabhängig vom Unterbau zu sein.
-
ehrlich gesagt hat bestimmt niemand gedacht, daß du DAS meinst...
kauf dir jetzt dringend einmal ein buch, mfc grundlagen.. egal welches, hauptsache, datenbankanbindung ist mit drin..
sonst kommst du nicht weiter, wenn du damit arbeiten musst.(gibts auch in fast allen bibliotheken, oder gebraucht bei amazon)
-
Hast du eine Empfehlung?
Ich habe hier mindestens 5 Bücher und in KEINEM ist es beschrieben.
-
wie wärs einfach mit einem elektronischen anfängerbuch
http://www.se.fh-heilbronn.de/usefulstuff/VCPLUS6/kap14.htmdas steht eigentlich alles drin.
Funktion
BeschreibungAddNew
Fügt einen neuen Datensatz in den Recordset ein.Delete
Löscht den aktuellen Datensatz aus dem Recordset.Edit
Erlaubt die Bearbeitung des aktuellen Datensatzes.Update
Speichert die aktuellen Änderungen in der Datenbank.Requery
Führt die aktuelle SQL-Abfrage erneut aus, um den Recordset zu aktualisieren.
-
Danke!

Das erste positive an einem "in 21 Tagen" Buch.
Ich gebe zu, dieses Buch habe ich im Laden mal angelesen und auch online schon ab und zu, aber ich fand es immer so "anfängermäßig", dass es sofort wieder im Regal landete.
Okay, jetzt bin ich erstmal beschäftigt.

-
So, für alle eventuell neugierigen:
Das DBMS heisst Pervasive.
(http://www.pervasive.com)