MySql und C++

Silvercreast

Erfahrenes Mitglied
Hallo

Ich habe mal eine Frage und zwar besteht ein großer unterschied zwischen ner Schnittstelle zu einer Access Datenbank und einer Schnittstelle zu einer MySql Datenbank :confused: Ich bin ein absoluter Nobody in MySql ich hab da eigentlich gar keinen Plan von, nur ich benötige eine Schnittstelle von meinem C++ Programm zu meiner MySql Datenbank. Momentan habe ich eine Access Schnittstelle:

Schnittstelle (Laden und Speichern)

Code:
void MusicManagement::ReadDB()
{

	CDatabase Musik_Daten;
	CString DB_File = "MUSIK";
	CString sDsn;
	CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
	CString SqlString;


	// The ODBC Connection String

	sDsn.Format("ODBC;DRIVER={%s};DSN='MUSIK';DBQ=%s",sDriver,DB_File);

	TRY
	{
		// Open the database
		Musik_Daten.Open( "MUSIK" );
		
		// Allocate the recordset
		CRecordset recset( &Musik_Daten );

		// Build the SQL statement
		SqlString =  "SELECT ID, Regal, Interpret, Titel, Rubrik, CD "
				"FROM tbl_Datenbank";

		// Execute the query
		recset.Open(CRecordset::forwardOnly,SqlString,CRecordset::readOnly);

		// Loop through each record
	
		CString Shelf;
		CString Interpreter;
		CString Title;
		CString Rubric;
		CString CD;

		while( !recset.IsEOF() )	
		{
			// Copy each column into a variable
			
			recset.GetFieldValue("Regal",Shelf);
			recset.GetFieldValue("Interpret",Interpreter);
			recset.GetFieldValue("Titel",Title);
			recset.GetFieldValue("Rubrik",Rubric);
			recset.GetFieldValue("CD",CD);

			
			
			MusicPiece music;

		
			music.Shelf		  = Shelf;
			music.Interpreter = Interpreter;
			music.Title		  = Title;
			music.Rubric	  = Rubric;
			music.CD		  = CD;
			
			

			

			m_MusicCollection.MusicData.push_back( music );
			

			// go to next record
			recset.MoveNext();
		}

		// Close the database
		Musik_Daten.Close();

	}
	CATCH(CDBException, e)
	{
			// If a database exception occured, show error msg
			AfxMessageBox("Database error: "+e->m_strError);
	}

	END_CATCH;

	}




void 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](Regal,Interpret,Titel,Rubrik,CD) values "; //conection with the databse
		strErgebnis += (LPCTSTR)SqlString;
		strErgebnis.Replace("''","NULL");
		music_data.ExecuteSQL(strErgebnis); // send to database
		music_data.CommitTrans(); // stor data
		

		music_data.Close();

}
Ich hab mich auch schonmal in der FAQ umgeguckt aber das hilft mir nicht so wirklich weiter, da ich vieles nicht kenne über MySql und es dort nicht beschrieben wird. Deswegen hoffe ich ,dass mir jemand eine kleine Hilfe geben kann wie ich diese Access Schnittstelle umbauen kann. Oder komm ich nicht drum rum mich komplett mit MySql zu beschäftigen :confused:

P.S Ich habe eine MFC - Anwendung geschrieben

Gruss Silver
 
Zurück