Silvercreast
Erfahrenes Mitglied
Hallo ich habe ein wahrscheinlich dummes Problem was ich nur nicht erkenne, aber ich komme einfach nicht weiter ich habe einen sogenannten Blackout. Damit ich möglichs gut antworten bekomme, versuche ich mein Problem ausführlich zu beschreiben.
Also ich habe eine Musik Datenbank geschrieben, die alle Datensätze aus einer Accesstabelle liest und auch dort hinein speichert. Mein Problem ist nun aber, dass löschen aus dieser Tabelle herraus. Das markieren:
funktioniert einwandfrei. Nur wenn ich diesen Datensatz dann löschen möchte gibt es Probleme. Ich habe mir mit Hilfe von anderen diesen Code halbwegs gebastelt.
Ich hoffe Ihr habt den Code verstanden nun zu meinem Problem meinen Problemen:
- Ich habe ein MusicPiece DeleteSong deklariert habe natürlich noch keine Daten , wie schaffe ich es auf die Daten aus der CListCtrl zuzugreifen und in DeleteSong zu kopieren.
-m_ListDataFound.GetItemData() dieser kleine Codeteil ist Blau markiert, in die () muss ich glaube das zu löschende Item rein ,aber wie kann ich wiederum erkennen welches Item. Wenn ich pos benutze kann der Compiler das net konvertieren, muss ich mit format arbeiten
Ich hoffe Ihr habt alles verstanden und könnt mir helfen
gruss Silver
Also ich habe eine Musik Datenbank geschrieben, die alle Datensätze aus einer Accesstabelle liest und auch dort hinein speichert. Mein Problem ist nun aber, dass löschen aus dieser Tabelle herraus. Das markieren:
Code:
m_ListDataFound.SetExtendedStyle( LVS_EX_FULLROWSELECT);
funktioniert einwandfrei. Nur wenn ich diesen Datensatz dann löschen möchte gibt es Probleme. Ich habe mir mit Hilfe von anderen diesen Code halbwegs gebastelt.
Code:
void Suche_Speicher ::DeleteData()
{
CDatabase music_data;
CString SqlString;
CString strErgebnis;
MusicPiece DeleteSong; // MusicPiece ist die Class in der die Datenvariablen sind
// z.B std::string Interpret;
// Ist was markiert?
POSITION pos = m_ListDataFound.GetFirstSelectedItemPosition();
//m_ListDataFound ist meine CListCtrl
if (pos == NULL)
{ // Nichts gewählt, Fehlermeldung oder nix machen
MessageBox("Es wurde kein Eintrag zum Löschen ausgewählt","Fehler",MB_OK);
}
else
{
while (pos)
{
SqlString.Format( "('%s','%s','%s','%s','%s')", DeleteSong.Shelf.c_str(),DeleteSong.Interpreter.c_str(),DeleteSong.Title.c_str(),DeleteSong.Rubric.c_str(),DeleteSong.CD.c_str());
strErgebnis.Format("Delete from [tbl_Datenbank] where [ID] = %d", m_ListDataFound.GetItemData( ? )); //conection with the databse
music_data.ExecuteSQL(strErgebnis); // send to database
// Index des Items holen und gleich weitersetzen
int nItem = m_ListDataFound.GetNextSelectedItem(pos);
// nItem ist der Index des Eintrags
m_ListDataFound.DeleteItem(nItem);
}
}
Ich hoffe Ihr habt den Code verstanden nun zu meinem Problem meinen Problemen:
- Ich habe ein MusicPiece DeleteSong deklariert habe natürlich noch keine Daten , wie schaffe ich es auf die Daten aus der CListCtrl zuzugreifen und in DeleteSong zu kopieren.
-m_ListDataFound.GetItemData() dieser kleine Codeteil ist Blau markiert, in die () muss ich glaube das zu löschende Item rein ,aber wie kann ich wiederum erkennen welches Item. Wenn ich pos benutze kann der Compiler das net konvertieren, muss ich mit format arbeiten
Ich hoffe Ihr habt alles verstanden und könnt mir helfen
gruss Silver