Announcement

Collapse
No announcement yet.

Abspeichern von Objekten in BLOB-Spalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Abspeichern von Objekten in BLOB-Spalten

    Hallo zusammen.

    Ich habe folgendes Problem: ich will eine Grafik (z.B. TBitmap) in eine BLOB-Spalte meine MySQL Datenbank abspeichern. Habs schon versucht mit TBlobStream aber irgendwie bekomm ichs nicht richtig hin!

    Wäre supi wenn mir jemand nen Tip (oder Codebeispiel ;-) ) geben könnte!

    vg Jens

  • #2
    Hi Jens,<br>
    mit TDBImage muesste es gehen<br>
    <br>
    Chri

    Comment


    • #3
      Moin Moin,

      nimm das...

      <PRE>

      void __fastcall TfrmAM2BE:atenbankProtokoll(AnsiString asExportTyp)
      {
      AnsiString asSQL = "";

      //insert into T_EXPORT
      //(ID, DATUM, EXPORT_TYP, EXPORT_PFAD, DATENBANK_NAME, LOGIN_NAME, RECHNER_NAME, PROTOKOLL)
      //Values
      //(0, '06.06.2001', 'GUTACHTEN', 'C:\TEMP', 'F:\test\am2.gbk', 'vogt', 'VOGT', BLOB)
      asSQL = "INSERT INTO T_EXPORT (ID, DATUM, EXPORT_TYP, EXPORT_PFAD, DATENBANK_NAME, LOGIN_NAME, RECHNER_NAME, PROTOKOLL) ";
      asSQL += "VALUES (0, '";
      asSQL += DateTimeToStr(Now()) + "', '";
      asSQL += asExportTyp + "', '";
      asSQL += Trim(txtSicherungsPfad->Text) + "', '";
      asSQL += Trim(txtBilderUNCPfad->Text) + "', '";
      asSQL += asLogin + "', '";
      asSQL += asWorkstation + "', :PROTOKOLL)"; //Feld, in der der Blob gespeichert werden soll
      //Los gehts...
      try
      {
      //Falls keine Transaktion mehr gültig ist, wird eine neue
      //Transaktion gestartet
      if(!iboBilder->InTransaction)
      {
      iboBilder->StartTransaction();
      }
      //SQL-Anfrage abfeuern
      ibQuery->SQL->Clear();
      ibQuery->SQL->Add(asSQL);
      //Blob hinzufügen
      ibQuery->ParamByName("PROTOKOLL")->AsString = mLog->Text; //mLog ist ein TMemo
      ibQuery->Prepare();
      ibQuery->Execute(); //oder: ibQuery->ExecSQL();
      iboBilder->Commit();
      ibQuery->Close();
      ibQuery->Unprepare();
      }
      catch(EIB_Error *E)
      {
      iboBilder->Rollback();
      AnsiString asTitel = "ISO/OSI-Schicht-8-Fehler";
      AnsiString asMsg = E->Message + "\r\n";
      Application->MessageBox(asMsg.c_str(), asTitel.c_str(), MB_OK);
      }
      }
      //---------------------------------------------------------------------------

      </PRE>

      ciao, Jürge

      Comment

      Working...
      X