Wie war das nochmal
-
Hallo
ich habe vor längerer Zeit hier mit zwei drei Usern ein ODBC Problem gelöst bzw einen ganz neuen ODBC-Code erstellt.
Nun benötige ich wieder eine ODBC Verbindung zu einer Datenbank. Da das andere nun aber schon etwas zurück liegt und es mein Programm von damals nicht mehr gibt, bitte nicht fragen warum. Wollte ich fragen wie ich Daten aus der Datenbank laden kann. Denn den Code den wir damals hier zusammen erstellt haben beschreibt nur soweit ich das noch zurück interpretieren kann nur das speichern in einer Datenbank.Der ODBC Code von damals:
[cpp]oid MusicManagement ::StoreDB(MusicPiece NewSong) { CDatabase music_data; CString SqlString; CString strErgebnis; // Open the database music_data.Open( "MUSIK" ); music_data.BeginTrans(); SqlString.Format( "(%s,%s,%s,%s,%s)", NewSong.Shelf.c_str(),NewSong.Interpreter.c_str(),NewSong.Title.c_str(),NewSong.Rubric.c_str(),NewSong.CD.c_str()); strErgebnis = "Insert into tbl_Datenbank"; strErgebnis += (LPCTSTR)SqlString; strErgebnis.Replace("''","NULL"); music_data.ExecuteSQL(strErgebnis); // SQL absenden music_data.CommitTrans(); // daten festschreiben music_data.Close(); }[/cpp]
Und eine weitere Frage :
Ist es richtig das ich den Access Treiber für ODBC über , Start/Systemsteuerung/Verwaltung/Datenquelle(ODBC)/
Neu definieren muss also im alten Besipiel einen Treiber MUSIK ertsllen muss.
-
Zum Auslesen schau dir mal CRecordset an, gibst auch einige Threads hier im MFC-Board zu.
-
Aber das dieser Code nur zum Speichern ist damit liege ich schon richtig oder?
-
Ja. mit CDatabase kannst du SQL-Statements absetzen, aber nicht das Ergebnis auswerten. Daher machen auch nur Schreibbefehle Sinn. Und wenn du deinen Code anschaust, tust du INSERT-Statement absetzen. Dieses fügt neue Sätze zu einer Tabelle hinzu.
-
Ok danke für die Auffrischung, dann werde ich mich jetzt nochmals mit dem Laden aus ner Datenbank beschäftigen.