Longblob(JPG) aus MySQL in TImage ausgeben



  • Hallo

    Das einfache Addieren ist natürlich komplett flasch, und das habe ich auch schon vor 2 Posts gesagt.
    Mit eingebauter Konvertierung meine ich Braunsteins Methode. Und dort kann ich den Fehler den du meldest (Speicherzugriffsverletzung) nicht erklären.

    Du must gar nichts in Binärdaten umwandeln, ganz im Gegenteil. Die Daten im (Blob-) Stream (auf keinen Fall das Image selber nehmen) sind bereits binär. Wnn dann müßtest du die Binärdaten ins textorientierte SQL-Format umwandelön, indem du byte für Byte des Streams durchgehst und wie in den Links beschrieben die Nichtdruckbaren Zeichen in Hexadezimal-Zahlen umwandeln.

    bis bald
    akari



  • Hallo,

    Kann es sein, dass der Parameter nicht gefunden wird? Kontrollier das mal

    TParam* param = Form1->Query1->Params->ParamByName("imageblob")->LoadFromStream(pBlob,ftBlob);
    if( param == 0 )
    {
    // Fehlermeldung
    }
    

    Du kannst statt ParamByName ja auch folgendes verwenden

    Form1->Query1->Params->Items[0]->LoadFromStream(pBlob, ftBlob);
    

    Bei mir war das ein TIBSQL und kein TQuery. Deswegen die anderen Bezeichner und Parameter.



  • Super es läuft!!! :p

    @Braustein

    Der LoadFromStream hat mich auf die Idee gebracht, einen TMemoryStream zu testen, da LFS nicht funktioniert hatte.

    TMemoryStream *pMS = new TMemoryStream;
    Image1->Picture->Graphic->SaveToStream(pMS);
    
    Form1->Query1->Close();
    Form1->Query1->SQL->Clear();
    Form1->Query1->SQL->Add("INSERT INTO film (titel, jahr, fsk, laufzeit, genre_id, beschreibung, image) VALUES ('"+Edit1->Text+"','"+Edit2->Text+"','"+ Edit3->Text+"','"+Edit4->Text+"','"+iRB+"','"+RichEdit1->Text+"',:imageblob)");
    Form1->Query1->Params->ParamByName("imageblob")->LoadFromStream(pMS,ftBlob); 
    Form1->Query1->ExecSQL();
    
    delete pMS;
    

    Ohne Deine Hilfe mit :imageblob, würde ich aber immer noch hier sitzen und versuchen mir den Kopf zu zerbrechen.

    SUPER FORUM, SUPER LEUTE!!!

    Vielen Dank an alle!!!!!!


Anmelden zum Antworten