Hoeen Geschrieben 21. Oktober 2002 Geschrieben 21. Oktober 2002 Hi! Ich habe einen kleinen E-Mail-Client mit dem C++-Builder 5 geschrieben und sämtliche E-Mail-Bodys und Attachments werden in einer MySQL DB gespeichert! Jetzt habe ich das Problem, die Attachments aus der DB zu bekommen! Hier meine beiden Versuche: void __fastcall TFrMain::Attachments1Click(TObject *Sender) { int egnr = SgMail->Cells[0][SgMail->Row].ToInt(); TBlobField *b; QrAttach->SQL->Clear(); QrAttach->SQL->Add("select * from attachments"); QrAttach->Open(); b = QrAttach->FieldByName("attach"); b->SaveToFile(QrAttach->FieldByName("filename")->AsString); QrAttach->Close(); } Das Problem ist, dass er hier nicht das TField (QrAttach->FieldByName("attach") in ein TBlobField konvertieren kann! Kann mir da vielleicht jemand helfen? Mein zweiter Versuch sieht so aus: int egnr = SgMail->Cells[0][SgMail->Row].ToInt(); QrAttach->SQL->Clear(); QrAttach->SQL->Add("select * from attachments"); QrAttach->Open(); if (QrAttach->FieldByName("ategnr")->AsInteger == egnr) { TStream * a = QrAttach->CreateBlobStream(QrAttach->FieldByName("attach"),bmReadWrite); if (a->Size >0) { void *temp = new char[a->Size]; //wenn ja Speicher anlegen a->ReadBuffer(temp, a->Size); //Auslesen TMemoryStream * m = new TMemoryStream(); m->LoadFromStream(a); m->SaveToFile("C:\\hoschi.xls"); } delete a; QrAttach->Close(); Hier bekomme ich in der Zeile (TStream * a = QrAttach->CreateBlobStream(QrAttach->FieldByName("attach"),bmReadWrite) den Fehler 'QrAttach: Dataset not in edit or insert mode'!!! Danke schon mal für die Hilfe! Gruß Hoeen Zitieren
Hoeen Geschrieben 21. Oktober 2002 Autor Geschrieben 21. Oktober 2002 ***sichselbstindenhinterbeiss*** wie doooooof von mir! also hier der korrekte Code: int egnr = SgMail->Cells[0][SgMail->Row].ToInt(); TBlobField *b; QrAttach->SQL->Clear(); QrAttach->SQL->Add("select * from attachments"); QrAttach->Open(); b = (TBlobField *)QrAttach->FieldByName("attach"); b->SaveToFile(QrAttach->FieldByName("filename")->AsString); QrAttach->Close(); Ich habe einfach nur (TBlobField *) vergessen! tss... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.