Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

***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...

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...