Announcement

Collapse
No announcement yet.

Blob laden

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

  • Blob laden

    Hallo zusammen,

    in meiner IB6-Adressdatenbank habe ich eine Feld:

    BILD BLOB SUB_TYPE TEXT SEGMENT SIZE 512 CHARACTER SET ISO8859_1

    eingefügt.
    Meine Frage lautet nun, wie ich ich die entsprechenden Bilder in das Feld lade.

    Vielen Dank im Voraus

  • #2
    Hallo,

    über welche Komponenten wird auf die InterBase 6-Datenbank zugegriffen (BDE bei einer Dialect 1-Datenbank oder IBX bei einer Dialect 3-Datenbank)? Welche Grafiktypen sollen gespeichert werden?

    Wenn binäre Daten gespeichert werden sollen, würde ich im Interesse der Übersichtlichkeit keinen SUB_TYPE TEXT verwenden, sondern klar zwischen Memo/Daten unterscheiden. Dazu können eigenen Domains herangezogen werden:
    <pre>
    CREATE DOMAIN TTextBLOB AS BLOB SUB_TYPE 1;
    CREATE DOMAIN TBinBLOB AS BLOB SUB_TYPE 0;
    </pre>
    Das folgende Beispiel demonstriert, wie über TQuery der Inhalt von *.ICO-Dateien in der InterBase-Datenbank abgelegt werden:
    <pre>
    procedure TFormMain.SBOpenClick(Sender: TObject);
    begin
    with OpenPictureDialog1 do
    if Execute then
    begin
    // zur Information Daten zum ausgewählten Icon anzeigen
    StaticTextPath.Caption := FileName;
    Image1.Picture.LoadFromFile(FileName);
    end
    end;

    (* QueryICON.SQL = INSERT INTO icondb (Name, Icon) VALUES (:sName, :bIcon)

    QueryICON.Params = sName : String, bIcon : Blob *)

    procedure TFormMain.BitBtnImportClick(Sender: TObject);
    begin
    with QueryIcon do
    begin
    Params[0].AsString := EditIconName.Text;
    if StaticTextPath.Caption <> '' then
    begin
    Params[1].LoadFromFile(OpenPictureDialog1.FileName, ftGraphic);
    try
    ExecSQL;
    except
    DBErrorForm.HandleException(Exception(ExceptObject ));
    end;
    end;
    end;
    end;
    </pre&gt

    Comment

    Working...
    X